kotlin基础学习-1(基础语法相关)

2022-03-14  本文已影响0人  ftd黑马
    //可修改变量
    var name:String = "hello world"
    name = "hello china"
    
    //只读变量
    val age:Int= 20
    age = 30   //这行会报错,因为val声明为只读
    var name = "hello world"
    val a = 5
  1. 只读变量并非绝对只读。
  2. 编译时常量只能在函数之外定义,因为编译时常量必须在编译时赋值,而函数都是在运行时才调用,函数内的变量也是在运行时复制,编译时常量要在这些变量赋值前就存在。
  3. 编译时常量只能是常见的基本数据类型:String,Int,Double,Float,Long,Short,Byte,Char,Boolean
const val MAX = 200
fun main() {
    const val MIN = 2//报错
}
  1. java有两种数据类型:引用类型与基本数据类型。
  2. kotlin只提供引用类型这一种数据类型,处于更高性能的需要,kotlin编译器会在java字节码中改用基本数据类型。
  3. 我们可以在kotlin字节码代码中查,双击shift选用show kotlin bytecode
  1. if/else if表达式与java是一样的
  2. range表达式
    in A..B,in关键字用来检查某个值是否在指定范围之内,in后面可以接list,set等,!in 表示不在这个指定范围。
val age = 14
    if (age in 0..18){
        println("未成年")
    }else if (age in 18..60){
        println("中年")
    }else{
        println("老年")
    }
  1. when表达式
val school = "小学"
    val level = when(school){
        "学前班" -> "幼儿"
        "小学" -> "少儿"
        "大学" -> "青少年"
        else ->{
            println("未知")
        }
    }
    println(level)
  1. 模板支持在字符串的引号内放入变量值
  2. 还支持字符串里计算表达式的值并插入结果,添加在${}中的任何表达式,都会作为字符串的一部分求值。
val origin = "Jack"
    val dest = "Rose"
    println("$origin love $dest")
//fun是函数的关键字,如果不声明private,默认是public,这段函数意思为入参是一个int和一个string,返回是一个string
//如果不打算传入值参,可以预先给参数指定默认值
//比如在插件化框架中的startActivity有好多的重载函数,这时候可以用kotlin的特性,具名函数,
//直接调用的时候为    doSomething(name = "2",age = 222),这时候参数顺序都可以随意写
private fun doSomething(age:Int = 2,name:String):String{
    return "i do"
}
fun main() {
    TODO()
}

Exception in thread "main" kotlin.NotImplementedError: An operation is not implemented.
    at study01.NimingfuncKt.main(Nimingfunc.kt:5)
    at study01.NimingfuncKt.main(Nimingfunc.kt)
  1. kotlin可以使用空格和特殊字符对函数命名,不过函数名要用一对反引号括起来
  2. 为了支持kotlin和java互操作,而kotlin和java各自却有着不同的保留关键字不能作为函数名,使用反引号括住函数名就能避免任何冲突。
上一篇 下一篇

猜你喜欢

热点阅读