package com.example.codingisfun
fun main(){
val phone1= MobilePhone("Android","Samsung","S30")
val phone2= MobilePhone("IOS","Apple","Iphone 14")
}
class MobilePhone(osName: String, brand: String, model: String){
private var battery= 30
init {
println("The phone $model from $brand uses $osName as its Operating System")
println(chargeBattery(30))
println(battery)
}
private fun chargeBattery(charged:Int){
println("before charge:$battery,charged: $charged and now: ${battery+charged}")
battery += charged
}
}
当我运行它时,它会打印:
手机S30从三星使用Android作为其操作系统之前收费:30,收费:30、现在:60Kotlin.Unit 60苹果公司的iPhone 14使用IOS作为其操作系统之前充电:30,充电:30、现在:Kotlin60号60单元
chargeBattery被分配到30,然后我删除了它,并在init上使用它仍然相同,我如何修复它?
1条答案
按热度按时间erhoui1w1#
方法“chargeBattery”没有定义返回类型,在Kotlin中,默认情况下,每个没有定义返回类型的函数都会返回Unit类型。将Unit类型添加到方法签名是可选的,但基本上你也可以将方法定义为:
因此,当你调用“println(chargeBattery(30))"时,你实际上是在打印函数的返回类型,打印“before charge:$ba...”字符串是执行函数的副作用。
如果你只想使用“println”来打印你的字符串,你应该让“chargeBattery”方法返回你的字符串如下:
然后通过调用“println(chargeBattery(30)",只会打印该行。