记录
fun main(args: Arrary<String>){// 入口 main 方法,变量 args ,String 泛型数组
args.map({println(it)})
// lambda 表达式 args.map(){println(it)}/args.map{println(it)}
// args.map(::method) lambda 方法表达式中调用 method 方法
}
main 方法 入口
fun 方法声明
var 变量
val 常量
Arrary<out String> String 类型的数组,out 为 输出 ,因为 String 为 final 所以,out 可省略
没有 new / 对象不用 new
data class ClassName(){} JavaBean,自动重写了 setter getter toString hashCode 等
map 映射,属于一个扩展方法
没有/可以省略分号
flatmap 迭代的映射,属于一个组迭代的扩展方法
var name :String 变量声明为 String
? 定义允许为空
$ 字符串模版
args
it 迭代器 运行后配置参数 program args --> 编译时反射
Unit void 返回类型,可以省略
.kt kt 语言
enum class ClassName{}// 枚举类 有 class 修饰,与 Java 不同
fun main(varagr arg:String){ //kt 语言 main 方法
}
comparion object {}
// kotlin 伴生对象 Java 静态方法/静态变量/静态常量
init{} // 主构造方法
fun ClassName.hello(){}
// ClassName 类的扩展方法 hello ,是原类中没有的,以 类名. 连缀方法名即类的扩展方法
when(this) 类似于 switch(xxx),但是有返回值
尾递归 :只有递,没有归回来 常规会迭代,开占内存, tailrec 编译时进行尾递归优化
递归 :递过去,又归来