1.Kotlin中都是对象类型,没有基础数据类型;如需强转toLong():Long形式(val num: Double = phone.toDouble());
2.Kotlin中不支持八进制;
3.Kotlin中的数字可以添加_,方便阅读(val phone:Long = 186_3333_0816);
4.Kotlin中添加了一种等号===,表示是否指的是一个对象(内存地址是否一样), ==表示数据结构是否相等;
5.Kotlin中String具有很好模板性质,通过$这个字符来处理("123$a", a:String = 9);
6.Kotlin中"""ssssss\n"""这种可以使\n得换行效果无效;
7.Kotlin中for..in一起使用;
{
val array = 100..1
for(array in value){
Log.e("FFF", "println $value")
}
}
..代表正序输出,前边的数字必须小于后边的数字,否则输出异常;
downTo 代表倒叙输出,前边的数字必须大于后边的数字,否则输出异常;
step 代表每次输出的间隔;
until代表[),..或者downTo代表[];
array.indexof(i)表示取出下表为i的数据
{
val array = 1..100
for(value in array step 2){
Log.e("FFF", "value is $value")
}
}
{
val array = 100 downTo 1
for(value in array step 2){
Log.e("FFF", "value is $value")
}
}
{
val array = 100 until 1
for(value in array step 2){
Log.e("FFF", "value is $value")
}
}
when代替switch(比switch更加灵活);
value与下边的筛选条件必须是同一类型,value是object类型就没有限制了,else是必须有的
{
when(value){
"22",1 -> "one"
listOf(1,2) -> "two"
else -> "ERROR"
}
}
while正常使用;
8.Kotlin集合(listOf, mapOf)
当集合没有标明是何种类型时,可以添加任何值(var list = listOf(1, "3", 444, false))
9.Kotlin(空安全)对象赋值的时候最好!=,取对象属性的时候最好?.这种对象为空不执行 , !!.这种当对象为空,会报空指针
10.lazy (延缓初始化)
val normal by lazy{
"dddddd"
}
注:lazy只能和val(常量)一起使用
11.Kotlin中的函数
fun sum(a:Int,b:Int):Int{
return a+b
}
fun sum(a:Int, b:Int) = a+b
val sum = {a:Int, b:Int -> a+b}
无返回值Unit或者不写