国内出名的校园文化建设网站有哪些,政协门户网站建设,Wordpress500页面,wordpress top0.9主题1、Kotlin只提供引用类型这一种数据类型。
2、和!的含义 计算两个实例是否指向同一引用 ! 计算两个实例是否不指向同一引用
3、条件表达式给变量赋值
var healthstr if(health 100)It is excellent else It is awful
4、when表达式
是Kotlin的另…1、Kotlin只提供引用类型这一种数据类型。
2、和!的含义 计算两个实例是否指向同一引用 ! 计算两个实例是否不指向同一引用
3、条件表达式给变量赋值
var healthstr if(health 100)It is excellent else It is awful
4、when表达式
是Kotlin的另一个控制流工具。类似于if/else语句 when表达式允许你编写条件式非常适合有三到四个分支的情况。
相比以前的if/else语句when表达式能让代码更简洁易读。实践经验表明只要代码包含else if分支都建议改用when表达式。
5、asList()和toList()的区别
asList()仍然保持对原始Array的引用。 这意味着该列表的突变也会改变基础Array 。
toList()只是将Array的值复制到一个新的List 但是之后没有任何延续的链接。
6、const变量
不在函数或类内它是文件级变量。
const val NUMBER_VALUE 10;//定义const变量
在项目范围内你都能看到或使用这个文件级变量当然有需要的 话可以添加可见性修饰符修改其可见性。文件级变量保持着初 始化状态一直到应用程序执行结束。
文件级变量在定义时就必须赋值否则代码就无法编译在第15章 你会看到这方面的代码异常。这种强制要求可避免代码异常例 如你正要使用某个变量而它却没有值。
7、单表达式函数语法
只需要使用赋值运算符后跟表达式就可以了。
8、Unit函数
如函数无返回值时返回类型为Unit类型。
通过使用Unit作为返回类型Kotlin解决了这一难题。Unit表示一 个函数不返回任何东西同时也能兼容需要和一些类型打交道的泛 型函数。无论有无类型都不是问题这正是Kotlin使用Unit的原 因。
9、具名函数参数
如果不用具名函数值参就必须按函数头的定义严格按顺序 传入值参。而有了具名函数值参传入值参时就可以不管函数头的参 数顺序了。
private fun formlate(str: String abc): String {//设置形参默认值为abcvar healthstr1 healthstrhealth 56;healthstr1 when (health) {100 - A90 - B80 - C60 - Delse - { formlate1(number 90, str www)//具名函数参数}}println(healthWhen:$healthstr1, str:$str)return healthstr1
}
private fun formlate1(str: String abc, number: Int) when (health) {100 - A90 - B80 - C60 - Delse - {str:$str, number:$number}
10、TODO函数返回值类型为Nothing类型
TODO()函数调用后的语句不执行。
fun main(arrays: ArrayString) {
tesetTODU()
}
fun tesetTODU(){println(Test will be processed)TODO()println(Test is processed)
}
10、java文件引用kt文件方法和变量
java文件里应用kt文件中文件级别方法或者变量需要使用”类名kt“ 去调用
public class RunMain {public static void main(String[] args) {System.out.println(hello world!TestDemoKt.formlate(DEF));}
} fun formlate(str: String abc): String {//设置形参默认值为abcvar healthstr1 healthstrhealth 56;healthstr1 when (health) {100 - A90 - B80 - C60 - Delse - {formlate1(number 90, str www)//具名函数参数}}println(healthWhen:$healthstr1, str:$str)return healthstr1
}11、匿名函数,又叫做lamada表达式
在一对花括号里定义匿名函数。
var customFunction2:(String)-String {var num 10num:$num it:$it
}
在花括号的后面跟上一对空的圆括号表示调用匿名函数。圆括号不能省。
println(customFunction2(elena))
返回值没有return关键字为了返回数据匿名函数会隐式或自动返回函数体最后一行语句的结果。
参数参数的类型放在匿名函数的类型定义中参数名则放在函数定义中。
it关键字语法只适用于一个参数的情况。匿名函数支持多个参数。如 果有多个参数需要使用命名参数。
如果一个函数的lambda参数排在最后或者是唯一的参数那么括住 lambda值参的一对圆括号就可以省略。所以之前的代码
一个参数的情况
fun functionAsParamTest2(customFunction6 :(String , Int) - String ){println(customFunction6:customFunction6(nnn,999))
}
functionAsParamTest2({name:String, age:Int -var num 99num:$num name:$name age:$age
})
就可以简写成这样
functionAsParamTest2{name:String, age:Int -var num 99num:$num name:$name age:$age
}
两个参数的情况
functionAsParamTest3(888,{name:String, age:Int -var num 99num:$num name:$name age:$age
})
可以简写成这样
functionAsParamTest3(888){name:String, age:Int -//匿名函数作为参数最好写在最后var num 99num:$num name:$name age:$age
}
三个参数的情况
functionAsParamTest4(888,teacher,{name:String, age:Int -//三个参数的情况匿名函数排在参数列表最后可以省区圆括号var num 99num:$num name:$name age:$age
})可以简写成这样
functionAsParamTest4(888,teacher){name:String, age:Int -//三个参数的情况匿名函数排在参数列表最后可以省区圆括号var num 99num:$num name:$name age:$age
}使用这种简略语法后代码更简洁易读能够让人快速抓住重点。这种简略写法只支持lambda参数排在最后的情况所以定义函数时建议把函数类型的参数放在最后以方便调用者使用。
12、函数引用形参类型是函数类型
函数形参类型是函数类型函数引用作为值参。使用时需要::加上函数名即可。
形参函数的返回值需要是Unit类型。
functionReference(student, ::getPersonInfo)
//函数引用
fun functionReference(career:String ,getInfo:(String, Int)-Unit){println(career:$career,getInfo)
}
fun getPersonInfo(name:String, age:Int){name:$name,age:$age
}
13、返回类型是函数类型
var function functionReturnFunction()
println(function(egg, 100))
fun functionReturnFunction(): ((String, Int) - String) { //返回类型是函数类型return { name: String, age: Int -println(返回值为函数)//只返回函数本身不执行函数体name:$name ,age:$age}
}
14、安全调用操作符.
var str : String? null;
str yyy
var len str?.length
println(str)
15、let安全调用函数
任何类型的数据都可以调用let函数。
it是非空的即调用let函数的变量不为null时执行let函数内部的语句。
let函数作用1、创建新值2、调用其他函数 16、.非空断言操作符
字符串为空时抛出空指针异常。
var str : String? null;
str yyy
//!!.非空断言操作符
var newStr str!!.capitalize()
println(newStr)
17、?:空合并操作符
如果左边的求值结果是null就使用右边的结果值。可以避免null值得出现。
var str : String? null;
//str yyy
var newstr str?:xxx
println(newstr)
18、解构
List集合支持在解构语法。只要是集合结果都可以用解构赋值。
解构语法list集合可以同时给多个变量赋值。例如
var str bu,gou,yan,xiao
val (str1,str2,str3,str4) str.split(,)
println(str1:$str1,str2:$str2,str3:$str3,str4:$str4)