println之前的双冒号在kotlin中是什么意思
在下面的Kotlin代码中,println前面的双冒号是什么意思println之前的双冒号在kotlin中是什么意思,kotlin,Kotlin,在下面的Kotlin代码中,println前面的双冒号是什么意思 class InitOrderDemo(name: String) { val firstProperty = "First property: $name".also(::println) } 代码打印: 第一物业:您好 From:表示: 创建成员引用或类引用 在您的示例中,它是关于成员引用的,因此您可以将一个函数作为参数传递给另一个函数(aka) 如输出中所示,您可以看到也使用字符串值调用了println,因此也函数在
class InitOrderDemo(name: String) {
val firstProperty = "First property: $name".also(::println)
}
代码打印:
第一物业:您好
From:
表示:
创建成员引用或类引用
在您的示例中,它是关于成员引用的,因此您可以将一个函数作为参数传递给另一个函数(aka)
如输出中所示,您可以看到也
使用字符串值调用了println
,因此也
函数在调用println
之前可能会检查一些条件或进行一些计算。
您可以使用(您将获得相同的输出)重写示例:
您也可以编写自己的函数以接受另一个函数作为参数:
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)
}
类InitOrderDemo(名称:String){
val firstProperty=“第一个属性:$name”。另外(::println)
fun和also(块:(字符串)->Int):Int{
返回块(firstProperty)
}
}
趣味主线(args:Array){
InitOrderDemo(“hello”).andAlso(字符串::长度)。也(::println)
}
将打印:
第一物业:您好
二十一,
将块(T)->单元
,:
将对println
的引用作为可调用项传递,而不是写出lambda{println(it)}
。它是一个。
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)
}