【Kotlin学习日记】Day2:语法糖_1
2017-06-15 本文已影响297人
William李梓峰
大家好,欢迎加入小李君的Kotlin学习之旅。今天是小李君学习Kotlin的第二天,本文将简述Kotlin语法糖,let‘s do it。
昨日回顾:
- 访问官网https://kotlinlang.org
- 点击learn,看Tutorial 文档
- 在Jetbrain IDEA上新建工程,写main函数,打印Hello World,运行程序
今日内容:
- 访问官网https://kotlinlang.org/docs/reference/ ,快速看完Overview
- 直接进入阅读Getting Started - Basic Syntax
- 练习 Basic Syntax 上的例程
第一步:
看看Overview,并暂且忽略它。
小李君认为,在学习的初期,仔细研读Overview的经文,是很难有深刻理解的,往往容易让新手一脸蒙蔽、无所适从。所以,小李君只简单说一下,让大家有个印象,等大家学成出山后再回过头来细细品味。
- Kotlin可以写服务端程序,Spring 5将支持更多Kotlin语法糖,让你写得更爽。
- Kotlin可以写Android程序,谷歌直接背书,如同Golang,你懂的。
- Kotlin可以写Web前端,NodeJS程序。直接玩DOM,JQuery,ReactJS,各种JS,支持ES5,还打算支持ES6;这野心,嗯。
第二步:
研读Getting Started - Basic Syntax
- package,包,跟Java一样套路,直接过。
- function,函数,以fun开头,有点意思,也很简单。
- variable,变量,以val为只读变量(常量),以var为可变变量。666~
- comment,注释,跟Java一样套路,/* 稍微先进一点 */,直接过。
- string template, 字符串模板,跟Shell Script一样套路,其实是变量占位符。让你不用拼接字符串,“轻松远离” + “字符串” 。
- conditional expression, 条件表达式,写 if 语句不用再换行再换行了,简单的判断直接一行搞定,if(a>b) a else b。
- nullable values, 空值处理,注意官方例子中返回的类型有个问号,意思是如果你的函数会返回空值,那么请你显式地标注它,让调用者知道你的函数有毒。这是Kotlin的杀手级特性之一,小李君为此慕名而学这门语言。
- type checks and automatic casts,类型检查及自动转换,这里官方例子会有个小跳跃,字符串模板中用上三目运算符? : ,以此引出 if 判断的处理可能跟 Javascript 一样。以 is 替代 instanceof 和 typeof,!is能取反。能用上自动转换的前提是常量( immutable local variable or property)。这里虽然有点懵逼,但不妨碍粗浅理解,以后再细究。
- for loop,for循环,就是foreach,很简单。
- while loop,while循环,还是那个几十年前的模样,风味不变。
- when expression,when表达式,就是switch case,语法更简练。
- ranges,范围,多用在快速初始化数组上,有点意思。
- collections,集合,这个collection跟Java的Collection家族差不多,语法糖更强更简练。
第三步:
练习 Basic Syntax 例子,把官网的例程都看一遍且运行一遍。
不一定全部都练一遍,但起码做到大概有个印象,等真正实战的时候,带着这些印象加深理解和记忆即可。新手们千万别死记硬背语法糖,千万别觉得要完全默写语法糖出来才能开始真正写些完整的程序;其实,小李君更加喜欢边写边查。官方文档在手,天下程序我有。