fun main(args: Array<String>) {
CustomerData.count = 98
CustomerData.typeOfCustomers()
println(CustomerData.count)
}
object CustomerData {
var count: Int = -1
fun typeOfCustomers(){
println("This came from typeOfCustomers function in CustomerData class")
}
}
这将向控制台输出“这来自CustomerData类中的typeOfCustomers函数”。但是,当我使用return而不是println()时,该行不会像下面的代码那样返回到控制台
fun main(args: Array<String>) {
CustomerData.count = 98
CustomerData.typeOfCustomers()
println(CustomerData.count)
}
object CustomerData {
var count: Int = -1
fun typeOfCustomers():String{
return "This came from typeOfCustomers function in CustomerData class"
}
}
答案 0 :(得分:3)
Return只是从函数中返回一个对象。在您的情况下,返回的对象是字符串。要打印字符串,您需要执行以下操作:
val typeOfCustomer = CustomerData.typeOfCustomers()
println("${CustomerData.count} $typeOfCustomer")
答案 1 :(得分:0)
您的示例都调用CustomerData.typeOfCustomers()
。
在第一个示例中,该调用将字符串直接写入控制台,这就是您看到它的原因。
在第二个示例中,调用返回字符串,但不执行任何操作,因此该字符串将被简单丢弃。
就像大多数现代语言一样,在Kotlin中,函数/方法调用的结果是一个值,而值始终是有效的语句;除非您使用该值,否则该值将被忽略。
如果您改为在println()
调用中使用该值:
println(CustomerData.typeOfCustomers())
...然后,您将按预期在控制台上看到字符串。或者,您可以将结果分配给变量:
val type = CustomerData.typeOfCustomers()
或在表达式中使用它:
val message = "Call returned: " + CustomerData.typeOfCustomers()
或调用其方法之一,或以其他任何方式使用它。
否则,Kotlin会拨打电话,而只是忽略结果。