Kotlin异常与Java异常的区别: throw的Kotlin中是个表达式,这样我们可以将throw作为Elvis表达式[val test = aa ?: bb,这样的则为Elvis表达式,表示如果?前面的不为null则将前面的aa赋值给test,否则则执行?后面的赋值test]的一部分,下面看下代码: 呃,有个东东比较奇怪: 这里要解释一下:throw表达式的类型是一种特殊的类型:Nothing.在自己的代码中,可以使用Nothing来标记永远不会返回的函数.好下面来把程序执行一下: 比如好…
1.lazy{} 只能用在val类型, lateinit 只能用在var类型 如 : val name: String by lazy { "sherlbon" }lateinit var adapter: MyAdapter122.lateinit不能用在可空的属性上和java的基本类型上 如: lateinit var age: Int //会报错13.lateinit可以在任何位置初始化并且可以初始化多次.而lazy在第一次被调用时就被初始化,想要被改变只能重新定义 4.lat…
Kotlin中有两个关键字定义变量,这两个关键字外形看着差别很小就只差了一个字母,但实际差别很大的. var是一个可变变量,这是一个可以通过重新分配来更改为另一个值的变量.这种声明变量的方式和Java中声明变量的方式一样. val是一个只读变量,这种声明变量的方式相当于java中的final变量.一个val创建的时候必须初始化,因为以后不能被改变. var name = "zhang san" println(name) name = "li si" println…
LazyMan问题与解法 http://mp.weixin.qq.com/s/drNGvLZddQztcUzSh8OsSw 给出了一道题目,并给出了解法: 题目: 实现一个LazyMan,可以按照以下方式调用: LazyMan(“Hank”)输出: Hi! This is Hank! LazyMan(“Hank”).sleep(10).eat(“dinner”)输出 Hi! This is Hank! //等待10秒.. Wake up after 10 Eat dinner~ LazyMan(…
code 1 fun main(args: Array<String>) { val a : Int = 1000 println(a == a) //true println(a === a) //true val a1 : Int = a val a2 : Int = a println(a1 == a2) //true println(a1 === a2) //true } code 2 fun main(args: Array<String>) { val a : Int…
1.什么都没有,在该类中使不能使用的, 这个参数的作用就是,传递给父类的构造方法 2.使用var 可以在类中使用,相当于 我们声明了一个该类中定义了一个private 的成员变量 3.val表示不让修改该参数 加上了final 修饰符 class Glory (str:String , nom:Int){ } 转为Java代码 public final class Glory { public Glory(@NotNull String str, int nom) { Intrinsics.ch…