Kotlin
定义函数
定义函数一 :
fun 方法名(参数):返回值类型{
函数体
}
fun sum(a: Int, b: Int): Int {
return a + b
}
如果返回值为空(无返回值) 则类型可以写成Unit或省略.
定义函数二:
fun 方法名(参数) = 表达式
fun sum(a: Int, b: Int) = a + b
如果函数体只是一个表达式(包括逻辑表达式,运算表达式,条件表达式…)
不用注明返回值类型,程序根据运算结果自动类型推算.
= 号 在这里我本人理解为 return
定义局部变量
kotlin要求变量或者不可变常量声明时必须初始化,为了让JVM确定该变量或者不可变常量的类型
可变和不可变
var 可变 val 不可变
注释
和Java一样,Kotlin注释可以嵌套注释
//
/**
*
*
*/
使用字符串模板
使用字符串模板的意思是 字符串”“中的内容插入某个变量或常量,在编译时候讲自动值插入到指定标志位置.
标识符 : ${变量或常量}
例子: println(“hello kotlin, my name is ${name}”) 继而name的值为 “marshon” 那么输出的结果即将是 “hello kotlin, my name is marshon”
使用可空值及 null 检测
当某个变量的值可以为 null 的时候,必须在声明处的类型后添加 ? 来标识该引用可为空。
Kotlin 中有个机制叫空安全.我理解为程序检测到某个变量的值为null时,则复制为null,不会直接抛异常.该机制主要为了避免程序员写大量的if==null诸多判空代码. 变量类型后+? 如 var a:Int? = 0
三目运算 表达式?: ?号前面如果==null 则运行:后面部分.否则返回表达式内容 如: 1+100?:0 要么返回101,要么返回0.
使用类型检测及自动类型转换
在Java 中 使用instanceof 判断类型, 而在Kotlin中
is 判断是某种类型
!is 判断非某种类型
而且,接入is 为true 则会自动类型转化为目标类型
如
if(name is String){
//此时name 为String 类型
}
//此时name 回到原来类型
使用 for 循环
创建一个list集合,并遍历
val items = listOf("apple", "banana", "kiwi")
for (item in items) {
println(item)
}
// 取值方式 items[index]
如果集合中的每个元素是一个有序的自然数,可以使用区间表示
[!]in 左边界 .. 右边界 step 每次递增数
for (x in 1..100 step 2){
println(x)
}
[!]in 左边界 downTo 右边界 step 每次递减数
for (x in 100 downTo 1 step 2){
println(x)
}
使用 while 循环 #忽略
使用 when 表达式
跟java中switch类似
when (x) {
x is String -> "string"
x is Int -> "Int"
else -> "unknow"
}
->可以理解为return