学习笔记-Kotlin

学习笔记-Kotlin,第1张

由于在学习JetPack的时候,很多示例,以及sunflower、JetPack的Compose等等都是kotlin,由此开始学习kotlin。

与java相似的就不记录了,提高效率

目录

1.声明变量

2.类型推断

3.编译时常量

4.查看字节码

5.数据类型

6.条件表达式

7.函数头

 8.函数参数

9.反引号中的函数名

10.匿名函数

11.高阶函数


1.声明变量

变量声明是跟java非常不同的。java写法: int age = 5;
其中变量声明关键字分为var,val
var:声明可修改变量
val:声明只读变量(目前我知道不是绝对意义上的不可修改,还不知道为什么,后续学习补充)

2.类型推断

类型推断:对已经声明并且复制的变量,允许省略类型,例如:

var age = 5

直接赋值的,咱们可以不用给类型,kotlin会根据咱们给的值来判断类型。

3.编译时常量
const val MAX = 1

const是编译时的关键字,注意:此关键字只能放在函数外。我觉得也挺好理解的,这是编译时就声明好了的常量,而函数内的只有运行到的时候才会进行一个声明,我的理解就是运行时常量的一个感觉,哈哈哈

4.查看字节码

按两次shift,搜索show kotlin就可以出现

5.数据类型

java数据类型:引用数据类型和基本数据类型
kotlin只有一个引用类型,kotlin自己自动会去转成基本数据类型。

6.条件表达式

ifelse就不说了,与java差不多

range表达式:

val age = 24
if(age in 1..4) {
    println("幼儿")
} else if (age in 4..10) {
    println("孩童")
} else {
    println("或许是个人吧")
}

运行结果:或许是个人吧
in A..B 某个值是否在指定(A-B)的范围内

when表达式:

val age = 24
val level:Any = when(age) {
    in 1..4 -> "幼儿"
    in 4..10 -> "孩童"
    else -> "你是我的神"
}
println("$age -> $level")

运行结果:24 -> 你是我的神

我把上边range的表达式放在了when表达式,配合一起用,学习起来更快,哈哈哈

7.函数头

 8.函数参数

默认传参:

fun fix(name:String, age:Int = 2)

此时我们调用fix函数可以只传一个name,age默认为2。fix("泡沫")

具名传参:

fun main() {
    fix(age = 4, name = "Jack")
}

此时咱们把age,name等于啥连名称都写出来了,就可以无序的填写参数

9.反引号中的函数名
public class MyJava {
    public static void is() {
        
    }
}
fun main(){
    MyJava.`is`()
}

咱们调用java里的方法时,java里的方法命名有些在kotlin中时关键字、有冲突。这个时候用反引号就可以解决冲突问题。

10.匿名函数

定义时不给其命名的函数,例如:

val blessingNewYear:() -> String = {
    val holiday = "new year."
    "happy $holiday"
}
println(blessingNewYear())

运行结果:happy new year.
其中可以看出返回值是String,而我并没有写return。这是因为lambda,会默认把最后一行当作返回,挺强大的,挺有意思的!

11.高阶函数
fun main(){
    val meilidepaomo:(String, Int) -> String = {goodsName, hour ->
        val currentYear : Int = 2007
        "${currentYear}年, 双11${goodsName}的促销事件剩余${hour}小时"
    }
    showOnBoard("安慕希", meilidepaomo)
}

private fun showOnBoard(goodsName:String, showdowns:(String, Int) -> String) {
    val hour : Int = 6
    println(showdowns(goodsName, hour))
}

运行结果:2007年, 双11安慕希的促销事件剩余6小时
注意点是,kotlin可以在参数中传入一个函数类型,比如showOnBoard中的showdowns,传入之后我在println中调用了它。

好了,很愉快的结束了今天的学习,今后也要好好加油!!!!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/737610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存