我的Kotlin基础语法学习笔记

Kotlin官网:https://www.kotlincn.net/docs/reference/server-overview.html

 

一.基本语法理解:

1.常量和函数的定义:

1.1语法:var/val name : Type 

 注:没有分号(;),可以省略Type。Kotlin会类型推导出变量的类型

var:可以被修改的变量

 var a:String="" //声明不可为null的字符串
 var b:String? = null   //可以为null的字符串

获取长度时:
a.length    //对
b.length    //错误的,因为 b 是可以为空的对象,不允许这种写法
b?.length    //空时不会执行 
c!!.length  //空时会执行,抛出空异常

val :是一个只读变量,这种声明变量的方式相当于java中的final变量。一个val创建的时候必须初始化,因为以后不能被改变。

1.2函数

 /**
     * 等同java的
     public int max(int a,int b){
        return if (a > b) a else b
    * */
    fun max(a: Int, b: Int): Int {
        return if (a > b) a else b //kotlin没有三元运算符,java可以写成return (a > b) ? a : b
    }

调用
max(2,3)
或
max(a=2,b=3)

1.3判空

安全访问表达       account?.length //如果是空的话不执行

Elvis操作符       var v = a?.b ?: c    等价于 v = if(a == null || a.b == null) c else a.b(a是可空的)

避免null检查(确定account不为null)      account!!.length //如果是空的话会执行,但会抛出空异常

2.表达式和语句

2.1when

1)基本

when(参数){
 条件1 ->操作
 条件2 ->操作
  条件3,条件4 ->操作
}

eg:
 override fun onClick(v: View?) {
        when (v?.id) {
            R.id.bt_login -> 操作,逻辑代码多时可用{}
            
            R.id.bt_register ->


            }
        }
    }

2)任意对象作为参数,吴灿书表达式

fun mix(c1: Color, c2: Color) = when (setOf(c1, c2)) {   
    setOf(RED, YELLOW) -> ORANGE     
    setOf(YELLOW, BLUE) -> GREEN     
    setOf(BLUE, VIOLET) -> INDIGO    
    //需要处理 其他 情况
    else -> throw Exception("Dirty color") 
}

//上面的效率低改成下面无参数
fun mixOptimized(c1: Color, c2: Color) = when {
    (c1 == RED && c2 == YELLOW) || (c1 == YELLOW && c2 == RED) ->        ORANGE
    (c1 == YELLOW && c2 == BLUE) || (c1 == BLUE && c2 == YELLOW) ->        GREEN
    (c1 == BLUE && c2 == VIOLET) || (c1 == VIOLET && c2 == BLUE) ->        INDIGO
    else -> throw Exception("Dirty color")
}

2.2 for

for(i in 0..100){}//用in来遍历循环,只能从小到大,包含首尾元素

for(i in 0 until 100){}//只包含头部元素,不包含尾部

for(i in 100 downTo 0){}//倒序遍历,步长默认1,即每次减一,表示闭区间,包含首位元素

for(i in 100 downTo 0 step 2)//设置步长,每次减二

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值