美文网首页Kotlin
Kotlin(六)'::'

Kotlin(六)'::'

作者: zhudms | 来源:发表于2020-09-12 23:27 被阅读0次

    Java8中新增的函数式编程

    使用  '::'  引用代表的都是一个执行过程,即一个方法,而非方法执行后获得的实例


    1. 可通过两个冒号来实现对某个类的方法类型进行引用(引用的是类型,并非方法的执行结果)

           a.  若引用当前类中的方法的类型,可直接使用'::XXX'格式进行引用(注意,方法名后没有括号)

           b. 或使用某对象加'::'来引用某实例对象的方法(形如a::bb)

            注意:XXX()   和   ::XXX 的执行效果完全不同,XXX()为调用了一个函数,会真正执行,而::XXX仅声明了一种类型,由于未给任何变量赋值,即无法使用,编译时应该会被去掉吧?

             故:此种引用方式似乎除了高阶函数中使用没有别的用了?

    2. 可以通过这种语法来定义一个类的构造方法引用变量

        例:class Book(name:String){}

                val getBool=::Book(此处引用的是Book的构造方法的类型,getBook的类型为(name:String)->Book)

                使用:getBook("name of Book").name  此时得到的是一个Book对象的name字段对应的字符,即 ‘name of book’。

        其他示例:

    定义Book类 各种使用方式(正确及不正确的) 类变量加‘::’的使用

    此处Book::name 是一个(Book)->String 类型的函数,即map()此处应该是个高阶函数

        使用:‘::’只表示引用其类型,与函数相关,只用于声明类型,不能企图获取其执行后的结果,若要获取执行结果,需要再通过调用声明的变量实现。与变量相关,获取到的为一个函数类型定义,非具体值,无法获取变量内容,需要使用'.'连接符,可以通过调用构造过程后通过‘.'连接符获取类变量值

    相关文章

      网友评论

        本文标题:Kotlin(六)'::'

        本文链接:https://www.haomeiwen.com/subject/fqupektx.html