变量
有初始值的变量,无需显式指定其类型
val(value):不可变引用
var(variable):可变引用,不推荐使用
在字符串模版中,可以在双引号中嵌套双引号,只要他们身处某个表达式中
fun main(args: Array<String>){
println("hello,${if (args.size>0) args[0] else "someone"}")
}
复制代码
属性
class person(
val name: String, //只读属性,相当于getter
var isMarried: Boolean //可读写,自带 getter/setter
)
复制代码
自定义访问器,可实现特定属性的定义和计算
class Rectangle(val height: Int, val width: Int){
val isSquare: Boolean
get() {
return height == width
}
}
复制代码
目录和包
Kotlin 不区分类和函数,没有对源文件的布局强加限制。函数,类可多个共存于一个.kt 的文件中
when 与枚举类型
Kotlin 中 if 是表达式,非语句。表达式有值,而语句没有。多个判断,推荐使用 when
fun eval(e: Expr): Int =
when (e) {
is Num ->
e.value
is Sum ->
eval(e.right) + eval(e.left)
else ->
throw IlleageArgumentException("exceptions")
}
复制代码
枚举类型中若要定义函数,就必须要用分号把枚举常量和函数分开,Kotlin 中唯一用到分号的地方
迭代
用in
表达区间循环,也可以用in
表达集合和区间成员
使用downTo
,step
,until
表达区间
评论