kotlin已经出现了好长一段时间了,但是一直没有机会去系统的学习,现在有机会去摸索一下了。从创建项目开始吧!
我使用的是AndroidStudio 2.3.2版本的从支持kotlin插件开始。AndroidStudio3.0之上的自带kotlin插件了,就不做多说了。
首先,选择File-Settings-Plugins 在搜索框输入Kotlin 点击Browse repositories
选择Kotlin选项。
下载完按提示重启IDE就好了。
由于是Android Studio2.3.2 没有直接可以创建Kotlin的方式(我没找到。。。)我们可以先正常创建java工程
按Ctrl+shift+a 打开搜索框 输入convert java file to Kotlin File可以将java工程转换成Kotlin工程
之后我对比了一下工程,可能是由于IDE版本原因,而且是创建的java工程转成Kotlin工程的,项目目录并没有什么大的变化。
只不过是将原来的.java文件变成了.kt文件
我们在创建文件的时候,会发现多了几个选项
它可以直接创建Kotlin文件了,甚至可以直接创建Kotlin类型的Activity了。
Kotlin代码
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
Java代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
对比一下,发现基本上差不太多。Kotlin没有Java语法那么严谨, Kotlin可以不使用修饰符public,将继承关键字extends替换成了 :。
函数定义使用关键字 fun,参数格式为:参数 : 类型
Kotlin函数带返回值类型 改函数返回Int类型
fun sum(a: Int, b: Int): Int { // Int 参数,返回值 Int
return a + b
}
表达式作为函数体,返回类型自动推断:
fun sum(a: Int, b: Int) = a + b
public fun sum(a: Int, b: Int): Int = a + b // public 方法则必须明确写出返回类型
无返回值的函数,使用Unit关键字
fun printSum(a: Int, b: Int): Unit {
print(a + b)
}
如果无返回值,Unit关键字可省略,如上方onCreate函数
public fun printSum(a: Int, b: Int) {
print(a + b)
}
我们看到Kotlin的MainActivity中的onCreate方法的参数
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
savedInstanceState: Bundle?
可以看到,它的参数类型后面加了一个?问号。类型后面加?表示可为空
NULL检查机制
Kotlin的空安全设计对于声明可为空的参数,在使用时要进行空判断处理,有两种处理方式,字段后加!!像Java一样抛出空异常,另一种字段后加?可不做处理返回值为 null或配合?:做空判断处理
//类型后面加?表示可为空
var age: String? = "23"
//抛出空指针异常
val ages = age!!.toInt()
//不做处理返回 null
val ages1 = age?.toInt()
//age为空返回-1
val ages2 = age?.toInt() ?: -1
目前就分析到这里。