Kotlin学习01-基础
kotlin的学习笔记。
基础
函数 变量
main函数可以独立于class
静态函数
类的静态函数,需要通过将函数放入到companion object的大括号内。1
2
3
4
5
6
7
8
9
10
11
12
13class Static {
companion object {
fun add( a: Int, b:Int):Int = (
a + b
)
}
}
fun main(args: Array<String>) {
Static.add(1,2);
}字符串模板
1
2
3fun main(args: Array<String>) {
println("Hello, ${if (args.size > 0) args[0] else "someone"}!")
}常量用val,变量用var
类和属性
自定义的获取器
1
2
3
4
5
6class Rectangle(val height: Int, val width: Int) {
val isSquare: Boolean
get() { // 属性的获取函数声明
return height == width
}
}Kotlin源代码布局
- Kotlin并没有在导入类和函数之间做区别,可以直接import方法,类似python和ReactJs的用法。
- 可以把多个类放到同一个文件中并且可以为文件选择任意的名字,弱化了包的概念
枚举
枚举和java中的有很大的相似之处,可以自己定义参数。
1 | enum class Color(val r :Int, val g :Int, val b :Int) {// 1 声明枚举常量的属性 |
不同之处在于:
- enum class 来标识是枚举
- 在枚举中的常量,需要用分号隔开,kotlin中唯一一处需要必须用分开的地方
when
when在处理枚举时,有点类似于java的switch-case,不过在kotlin中可以直接使用表达式函数。
带参数
1 | fun getMnmonic(color: Color) = // 1 直接返回一个when表达式 |
对应多个条件满足同一个返回结果,可以:
1 | Color.RED, Color.ORANGE, Color.YELLOW -> "warm" |
还有一个分支是默认分支,可以通过else的方式返回。
不带参数
对于多个参数的,每次都要写参数,会很多余,可以直接不用参数。
1 | when { // 不带参数的when |
智能类型转换
在java中,在调用一个是其他类型的对象时,若是object对象,我们需要先转成对应的类型,而后再处理,但是在kotlin不需要,只要判断是某个类型后,可以直接调用这个类具有的属性。
1 | interface Expr |
- 本文链接:http://ownwell.github.io/2018/02/26/learning-kotlin-1/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!