摘要:枚举类成员 输出: 动态调用成员函数 动态调用成员属性
阅读全文
摘要:注解是用来代码添加元数据的一种手段,要声明一个 注解,需要在类之前添加annotation修饰符 注解其他属性,可以通过向注解类添加元注解的方式来指定 @Target 指定这个注解可以被用于哪些元素(类,函数,属性,和表达式) @Retention指定这个注解可的信息是否被保存到编译后的class文
阅读全文
摘要:kotlin中所有的错误异常类都是throwable的自雷,没各一次都能带有一个错误消息,调用堆栈,以及可选的错误原因,要抛出异常,可以使用throw表达式 要捕获异常可以使用
阅读全文
摘要:要允许null值, 需要将变量声明为可为null的字符串类型:String? 上面代码是安全调用,如果为null则返回为null Elcis操作符 !!操作符 如果b为null ,抛出NPE异常 安全类型的转换 如果转换失败则返回null
阅读全文
摘要:一元操作符 二元操作符 方括号操作符重载 赋值操作符重载 逻辑操作符重载
阅读全文
摘要:在kotlin 中存在二种相等的判断: 1.引用相等 也就是说,两个引用指向同一个对象,使用 操作 ,相反操作为!==来判断 2.结构相等 使用equals 函数相等和==操作符 说明:a不为null,将为调用equals(Any)?函数,否则(也就是a为null)将会检查b是否为指向null
阅读全文
摘要:this表达式,可以表示当前函数的接收者,在类的成员函数中,this 指向这个类的当前对象实例,在扩展函数中或带有接收者数字面值,this代表调用函数时,在点号左侧传递的接收者参数 如果this没有限定符,那么它指向包含当前代码的最内层范围.,如果想指向其他范围的内的this,需要使用标签限定符 为
阅读全文
摘要:is 和!is操作符,可以在运行时检查一个对象与一个给定的类型是否一致,或者使用与它相反的!is操作符 智能类型的转换 强制类型转换 如果类型强制转换,而且类型不兼容,那么会抛类型转换异常,这是不安全的,不安全的类型转换使用中辍操作符as 为了避免抛异常.可以使用as? ,当类型转换失败时候回返回n
阅读全文
摘要:值范围表达式用rangeTo函数,该函数的操作符形式是二个点(..)另外还有in 和!in 相关操作符,任何可比较的大小的数据类型都可以定义值范围 值范围应用 rangTo函数只是简单的调用了*Range 类的构造器 downTo扩展函数可用于一对整数类型值 reversed 对每个类都定义了rev
阅读全文
摘要:fun main(arg: Array) { //可读写的集合创建 val mutableListOf1 = mutableListOf(1, 2, 3) val mutableListOf2 = mutableListOf() val mutableSetOf1 = mutableSetOf(11, 22, 33) val mutableSetOf...
阅读全文
摘要:fun main(arg: Array) { val person = person("tom") var (name) = person//解构 println(name) // ----------------- val map = mutableMapOf() map.put(1, "tom") for ((key, value) i...
阅读全文
摘要:在lambda表达式内联函数,需要在定义函数使用inline关键字 未使用inline关键字 使用inline 关键字 输出一样 但注意的是,要内联的函数带的lambda不宜过大,否则会造成生产class文件过大 内联部分lambda表达式 关键字noinline不会内联调用函数
阅读全文
摘要:kotlin 中函数可以定义为局部函数,成员函数以及扩展函数 局部函数:就是嵌套在函数内的函数 成员函数就是定义在类或者对象之内的函数 泛型函数就是函数可以带有泛型参数,可通过尖括号来指定
阅读全文
摘要:如果函数为多行语句,那么就必须指定返回值类型,除非这个函数打算返回Unit(不返回任何值)
阅读全文
摘要:如果函数体只有一条语句,而且是return语句,那么可以省略大括号以及return关键字,
阅读全文
摘要:所谓中辍表达式:就是将函数名称放在两个操作数中间,这二个操作数,左侧是包含函数的对象或者值,右侧是函数的参数值,并不是所有的函数都支持中辍表达式,必须满足以下条件: 成员函数或者扩展函数 只有一个函数 使用infix关键字声明函数
阅读全文
摘要:kotlin函数必须适应fun关键字开头,后面紧跟着函数名,以及一对小括号,小括号中是函数的参数列表,如果函数有返回值,则在小括号后面加冒号: 冒号后面是函数返回值类型 如果foo函数在demo类中,调用如下
阅读全文
摘要:lambda表达式,称为匿名函数,是一种函数字面值,也就是没有声明的函数,但可以作为表达式传递出去. 函数类型: 对于接受另一个函数的作为自己的参数,必须针对这个参数指定一个函数的类型如 参数less的类型(T,T)->Boolean ,也就是说,它是一个函数,接受二个T类型的参数,并且返回一个Bo
阅读全文
摘要:高阶函数是一种特殊的函数,它接受函数作为参数,或者返回一个函数 输出:
阅读全文
摘要:MutableMap委托变化是双向的,是一种可读写委托
阅读全文