美文网首页
kotlin入门(3)——基础语法

kotlin入门(3)——基础语法

作者: Aimee的抱抱 | 来源:发表于2019-07-31 09:22 被阅读0次

    一.定义变量

    1.val定义:只能赋值一次

    val a: Int = 1;//定义整数变量

    val a = 1;自动推断出 `Int` 类型

    val c: Int  // 如果没有初始值类型不能省略

    2.var定义:可重新赋值

    var x = 5;

    x+=1;

    二.表达式

    1.if表达式与java一样这里不说了

    2.for、while循环:

    val items = listOf("apple", "banana", "kiwifruit")

    for (item in items) {

        println(item)

    }

    或者:

    for (index in items.indices) {

        println("item at $index is ${items[index]}")

    }

    3.when:

    相当于java的switch,但是功能更强大:

    when (x) {

        1 -> print("x == 1")

        2 -> print("x == 2")

        3,4 -> print("x == 3 or x == 4”)//相同处理放在一起用逗号隔开

        in 1..10 -> print("x is in the range”)//1到10范围内的

        !in 10..20 -> print("x is outside the range”)//不在区间内的

       is String -> x.startsWith("prefix”)//检测是否为字符串

        else -> { // 注意这个块

            print("x is neither 1 nor 2")

        }

    }

    三.函数:

    fun sum(a: Int, b: Int): Int {

        return a + b

    }

    解释:

    fun:kotlin函数使用fun关键字声明

    sun:为函数名

    a:为参数

    a:Int:表示int类型的参数

    Int:表示返回类型

    返回无意义的值,有两种写法:

    1.fun printSum(a: Int, b: Int): Unit {

        println("sum of $a and $b is ${a + b}")

    }

    2.省略Unit:

    fun printSum(a: Int, b: Int) {

        println("sum of $a and $b is ${a + b}")

    }

    单表达式函数:

    当函数返回单个表达式时,可以省略花括号并且在 = 符号之后指定代码体即可:

    fun double(x: Int): Int = x * 2

    相当于:

    fun double(x:Int): Int{

         return x*2

    }

    在 Kotlin 中函数可以在文件顶层声明,这意味着你不需要像一些语言如 Java、C# 或 Scala 那样需要创建一个类来保存一个函数。此外除了顶层函数,Kotlin 中函数也可以声明在局部作用域、作为成员函数以及扩展函数。

    函数类型:

    1.局部函数(即一个函数在另一个函数内部):局部函数可以访问外部函数(即闭包)的局部变量

    2.成员函数是在类或对象内部定义的函数:成员函数以点表示法调用:Sample().foo()

    四.创建类和实例

    val rectangle = Rectangle(5.0, 2.0) // 不需要“new”关键字

    五.为null判断

    1.不为null

    val files = File("Test").listFiles()

    println(files?.size)//files不为null时获取它的size

    2.不为null else

    val files = File("Test").listFiles()

    println(files?.size ?: "empty”)//if不为null打印files的size 否则打印empty

    3.不为空执行

    val value = ...

    value ?.let{

         //不为空时执行

    }

    六.with

    定义:将对象作为函数的参数,在函数内可以通过 this指代该对象。返回值为函数的最后一行或return表达式。

    例如:

    var paint = Paint()

    paint.color = Color.BLACK

    paint.strokeWidth = 1.0f

    使用with:

    var paint = Paint()

    with(paint){

         color = Color.BLACK

        strokeWidth = 1.0f

    }

    var list= mutableListOf<String>()

    list.add(“1")

    list.add(“2")

    使用with:

    var list = with(mutableListOf<String>()){

         add(“1")

         add(“2")

         this

    }

    七.空安全

    在 Kotlin 中,类型系统区分一个引用可以容纳 null (可空引用)还是不能容纳(非空引用)。 例如,String 类型的常规变量不能容纳 null:

    1.var a: String = "abc"

    a = null // 编译错误

    调用:

    val l = a.length 就不可能会出现空指针报错

    2.如果要允许为空,我们可以声明一个变量为可空字符串,写作 

    String?

    var b: String? = "abc"

    b = null // ok

    print(b)

    调用:

    val l = b.length // 错误:变量“b”可能为空,调用时编译器会报错

    如果一定要调用需要做判断,调用方式:

    1.val l = if(b != null) b.length else -1

    2.b?.length//b不等于null时执行b.length

    相关文章

      网友评论

          本文标题:kotlin入门(3)——基础语法

          本文链接:https://www.haomeiwen.com/subject/yrgarctx.html