-
变量
var name = "张三" //等价于 String name = "张三"; var age = 0 //等价于 int age = 0; var sex : String ?= null //等价于 String sex; //val 相当于 final var 不多啰嗦
look上面的代码,kotlin里定义类型都是 var 类型的,然并卵都是骗人的.....目的就是少点字符. 根据 等号 后面自动推断出类型, 也就是说上面代码写 name = 0 编译不通过....
想象一下,有个class,名字是 AAABBBCCCDDD.class 我们通过构造new一个对象出来 var abcd = new AAABBBCCCDDD() 确实是少些了一点代码......蚊子腿,不好吃 - 空安全
//简单讲 变量分为可空和不可空 var name = "" var name_ : String ? = null name = null //编译错误 name_ = null //编译通过 //具体用一下这2个变量 name.toString() name_?.toString() //可以为空的变量多了一个 ? 当代码执行这一句的时候如果name_ == null 则不执行 //拓展 if(name_?.isEmpty()){ //编译不通过 我们试着读一下这个判断 如果(name_是空字符串)进入判断 但是name_为null不执行.isEmpty()啊 咋办 } //改 if(name_ != nul l&& name_.isEmpty()){ //看到区别了么? name_. 后面没问号啊 因为前面判断它不为null了 还是挺智能... //下面来个简写 等价于这个判断 } //简写 if(name_?.isEmpty() ?: false){ // ?: 翻译.前面如果是个空 则 后面表达式 有点像3元表达式的感觉...不熟悉...多写写就熟悉了 }
-
函数、方法
基本上,基本的用法就这样了 本篇完fun method():String{ return "你好kotlin" } //简单点说 fun定义方法关键字 方法名(参数) : 返回值 { 函数体 没有返回值就省略 : String} //来搞点事情 var m : ()->Unit = null //编译报错稍后填坑 先无视之 // Unit 相当于 void 没有返回值的返回值...好绕换个例子好了 var name : String ? = null var m : ()->String = null //编译报错稍后填坑 先无视之 // 语音助手: 变量 name 是个 String 类型 初始值 等于 null // 语音助手: 变量 m 是个 函数 类型 初始值 等于 null 并且这个函数无参数 有个String返回值 m = {无参-> "返回值" } //给函数赋值 m?.invoke() // 通过 函数变量 调方法 //填坑 看name 和 m 的定义 name后面有个? 上面说过 变量分为可null和不可null 2种 可null的就要跟着个 ? //参考name 定义 ? 的位置(都是固定写法喽) var m : (()->String)? = null //小括号括起来加个? OK了
啥?回调?说好的优雅回调呢?
接下来要写的内容
- 用kotlin来开发android
热门评论
讲得不错。对于初学者很有帮助啊。