funlargerNumber(num1: Int, num2: Int): Int {
val value =if(num1 > num2){
num1
}else{
num2
}return value
}//使用上面提到的语法糖,简化↓funlargerNumber(num1: Int, num2: Int)=if(num1 > num2) num1 else num2
when语句
可以理解为Java中switch语句的加强版:
自带break;
可以传任意类型的参数, 甚至不带参数;
支持类型匹配;
//精准匹配when(type){
"1"->{
1}"2"->{
2}//只有一行可以省略大括号"3"->3else->{
//else相当于switch的default0}}//类型匹配,is相当于Java的instanceofwhen(num){
//判断num的类型,并打印is Int ->println("number is Int")is Double ->println("number is Double")else->println("number not support")}/*
不带参数用法, 把判断表达式完整写在->前
由于是判断表达式, 所以非常灵活, 可以代替多重ifelse.
*/when{
type <1->{
"1"}
type ==2->{
"2"}
type ==3->"3"else->{
0}}
循环语句
java的for-i循环即for(;;)被KT舍弃了
java的for-each循环在KT则大幅加强变成for-in循环
for-in 循环与区间
为了方便的使用for-in循环, KT有生成特定范围语法——区间
两端闭区间
//数学表示[0,10]val range =0..10for(i in range){
println(i)}
左闭右开区间
//数学表示[0,10)val range =0 until 10
常用于遍历数组, 右边界是长度即可
降序区间
//倒序打印10到1for(i in10 downTo 1){
println(i)}
规律跳过一些元素
//1到10(不包括10), 每次循环加2, 相当于for-i循环中i = i + 2for(i in0 until 10 step 2){
println(i)}
repeat 循环
简单的次数循环
//定义循环次数var time =3repeat(time){
index ->println(index)}
//定义接口interface Study {
funreadBooks()fundoHomework()}//Student类继承Person类classStudent(name: String, age: Int):Person(name, age), Study {
//使用overvide关键字代表重写方法overridefunreadBooks(){
println(name +" is reading.")}overridefundoHomework(){
println(name +" is doing homework.")}}