【发布时间】:2023-04-10 21:26:01
【问题描述】:
我添加了所有代码。我想写入数组的所有元素,但我只能在屏幕上看到“kotlin.Unit”。例如,如果我将三个“ozet”添加到“bilgiler”,我会看到三个“kotlin.Unit”。这与数组类型有关吗? (我在发送时删除了“菜单”功能) enter image description here
package OOP
class Ogrenci constructor(var isim:String,var numara:Int)
{
fun bilgileriGoster ()
{
println("Öğrencinin Adı: $isim"+" "+ "($numara)")
print("İlk sınav notunu girin: ")
var not1 = readLine()!!.toInt()
print("İkinci sınav notunu girin: ")
var not2 = readLine()!!.toInt()
var ortalama:Float = (not1+not2).toFloat()/2
println("$isim adlı öğrencinin ortalaması:"+ortalama )
}
fun ozet()
{
var ozet = "$isim,$numara"
}
}
fun main()
{
var bilgiler = arrayListOf<Any>(0)
var Seçim = Menu()
while (true){
if (Seçim==1) {
println("Öğrenci Adını Giriniz:")
var ad: String = readLine().toString()
println("Öğrenci Numarasını Giriniz:")
var numara: Int = readLine()!!.toInt()
var ogr1: Ogrenci = Ogrenci(ad, numara)
ogr1.bilgileriGoster()
println()
var ozet = ogr1.ozet()
bilgiler.add(bilgiler.size,ozet)
println("1-Devam")
println("2-Çıkış")
print("Seçim:")
var karar = readLine()!!.toInt()
if (karar==2)
{
for (index in bilgiler)
{
print(index)
}
break
}
}
}
}
【问题讨论】:
-
如果没有更多上下文,很难为您提供帮助。解决这个问题的一种方法是添加一些类型,尤其是在
ogr1、ozet和bilgiler上。如果你这样做,你可能会自己意识到这个问题。 -
你在那里写的东西没有任何意义。为什么在
if语句中添加break?如果您打算将break放入for循环,这意味着for循环将在第一次迭代后中断。如果删除break后仍然出现错误,请发布一个重现您的问题的最小示例 -
我的猜测是
ogr1.ozet()返回单位,因此我们需要查看这个函数 -
@Fred 好消息!我假设
bilgiler是某种列表,但在不知道确切类型(可能是List<Unit>或List<Any>)的情况下很难分辨 -
@Fred 我添加了所有代码
标签: android arrays intellij-idea kotlin