gpt4 book ai didi

kotlin - Kotlin 中 println 前的双冒号是什么意思

转载 作者:行者123 更新时间:2023-12-01 00:17:00 24 4
gpt4 key购买 nike

下面的 Kotlin 代码中 println 前的双冒号是什么意思?

class InitOrderDemo(name: String) {
val firstProperty = "First property: $name".also(::println)
}

代码打印:

First property: hello

最佳答案

Kotlin documentation :: 表示:

creates a member reference or a class reference.


在您的示例中,它是关于 成员引用 ,因此您可以将函数作为参数传递给另一个函数(又名 First-class function )。
如输出所示,您可以看到 also 使用字符串值调用 println,因此 also 函数可能会在调用 println 之前检查某些条件或进行一些计算。
您可以使用 lambda expression 重写您的示例(您将获得相同的输出):
class InitOrderDemo(name: String) {
val firstProperty = "First property: $name".also{value -> println(value)}
}
您还可以编写自己的函数来接受另一个函数作为参数:
class InitOrderDemo(name: String) {
val firstProperty = "First property: $name".also(::println)
fun andAlso (block : (String) -> Int): Int{
return block(firstProperty)
}
}

fun main(args : Array<String>) {
InitOrderDemo("hello").andAlso(String::length).also(::println)
}
将打印:

First property: hello

21

关于kotlin - Kotlin 中 println 前的双冒号是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51804120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com