提问人:Jerry Applegarth 提问时间:2/25/2021 更新时间:3/20/2021 访问量:1242
Kotlin:编程是打印 kotlin.unit
Kotlin: Programing is printing kotlin.unit
问:
我的 Kotlin 类将运行,但它打印出单词:kotlin。单位。我需要更改什么?
fun main(args: Array<String>) {
var myDuck = Duck()
println(myDuck.quack())
}
class Duck() {
fun quack () {
println("Quack, Quack, Quack")
}
}
答:
4赞
joshmeranda
2/25/2021
#1
之所以打印,是因为您打印的是不返回任何值的函数的返回类型。如果您熟悉其他语言,则与返回类型相同。void
在 kotlin 中,没有返回类型的函数返回单位
类型,因此当您打印 的返回值时,您正在打印值的字符串值。Duck::quack
Unit
最简单的解决方案是不打印 的返回值 ;但是,如果要打印 的返回值,则需要返回一个有用的值。对于检查:Duck::quack
prinlt
Duck::quak
class Duck() {
fun quack(): String {
return "Quack, Quack, Quack"
}
}
fun main(args: Array<String>) {
var myDuck = Duck()
println(myDuck.quack())
}
或者更惯用地说:
class Duck() {
val quack: String = "Quack, Quack. Quack"
}
fun main(args: Array<String>) {
var myDuck = Duck()
println(myDuck.quack)
}
0赞
Sergey Afinogenov
2/25/2021
#2
它应该打电话
myDuck.quack()
wich 已经在里面打印了。调用 println(myDuck.quack()) 会打印 myDuck.quack 的类型,因为它不返回任何值。
0赞
hasan muşluoğlu
3/20/2021
#3
1.打印“Kotlin.单位“(如果未指定类型)
fun main(args: Array<String>) {
var myDuck = Duck()
println(myDuck.quack())
}
class Duck():String {
fun quack () {
return "Quack, Quack, Quack"
}
}
评论
0赞
Henry Twist
3/20/2021
我想你的意思是指定 ?存在在这里没有多大意义......quack()
Duck
String
0赞
Youn Tivoli
3/20/2021
#4
此外,很快:
fun main() {
println(Duck.quack())
}
class Duck() {
fun quack () = "Quack, Quack, Quack"
}
评论