/*
一直在独立开发,也没时间调整自己的知识系统,虽然写代码速度变快了,项目经验很丰富了,但是快2年了。还是
用以前的开发方式。打算从0开始,开始重新架构我最近刚写完的护林系统。后面也打算开源出去。在此自勉吧。
这个项目就是使用kotlin,我就花了几天就入门。比较简单,但是就是写java 习惯了。之前还坚信 koltin不可能
取代java,因为android 底层,还有大量的库类和 思想都是适用于 java的,koltin只是让写代码变得方便了,但是
没有实质改变。但是像 很多android 程序员 都是独立开发项目的,大量的业务逻辑需要去写,真正只写核心代码
的人比较少吧。所以抱着试一试的态度尝试下。
*/
kotlin教程: http://www.runoob.com/kotlin/kotlin-basic-syntax.html
根据这个教程大致讲解下:
1.不需要分号结尾,有也没事
2.导包可以把导入一个文件夹,在导入的包比较多的时候,让代码界面看着舒服。
- kotlin.annotation.*
3.函数定义,给人感觉像人类文字, 直观翻译就是: 方法 sum 传入 ( a (int类型), b(int类型)) 返回 int类型结果
fun sum(a: Int, b: Int): Int { // Int 参数,返回值 Int return a + b }
4. 表达式作为函数体,实际用处不大 。 在 代码太多了,需要简化代码时候可以使用下
表达式作为函数体,返回类型自动推断:
fun sum(a: Int, b: Int) = a + b public fun sum(a: Int, b: Int): Int = a + b // public 方法则必须明确写出返回类型
5.可变长参数函数 ,java也有但是麻烦, 使用场景很多,比如接口传递参数时候
fun vars(vararg v:Int){ for(vt in v){ print(vt) } } // 测试 fun main(args: Array<String>) { vars(1,2,3,4,5) // 输出12345 }
6.lambda表达式 , 核心了
// 这里举例一个Android中最常见的按钮点击事件的例子 mBtn.setOnClickListener(object : View.OnClickListener{ override fun onClick(v: View?) { Toast.makeText(this,"onClick",Toast.LENGTH_SHORT).show() } })
//java 代码为: ,感觉没有变少很多,但是看下面lambda。
et_mima.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(this,"onClick",Toast.LENGTH_SHORT).show(); } });
使用lambda 变为:
mBtn.setOnClickListener {
Toast.makeText(this,"onClick",Toast.LENGTH_SHORT).show()
}
7. 一个是 var ,一个val . 一般写代码的时候都会初始化值的。所以基本都不用生命类型
可变变量定义:var 关键字
var <标识符> : <类型> = <初始化值>
不可变变量定义:val 关键字,只能赋值一次的变量(类似Java中final修饰的变量)
val <标识符> : <类型> = <初始化值>
常量与变量都可以没有初始化值,但是在引用前必须