kotlin基础篇

  • 转载时请注明出处,谢谢
  • / 0评 / 0

      Kotlin是一种针对Java平台的新编程语言。Kotlin简洁、安全、务实,并且专注于Java代码的互操作性。通过本文可以快速习得Kotlin语言编程基础。 Let's begin !
      
      让我们从一个小例子开始,它可以让我们对Kotlin代码有个初步的认识。这个例子有关于笔者家中的一只宠物泰迪熊,我叫它贝贝,它至今一岁了,每次笔者外出回家时它都会对着笔者汪汪汪的叫。下面我们用Kotlin语言描述一下:

    class Dog {
    
        var name: String? = null
        var age: Int = 0
    
        fun bark() {
            print("汪")
        }
    
        fun main(args: Array<String>) {
    
            val dog = Dog()
            //它叫贝贝
            dog.name = "贝贝"
            //它今年1岁了
            dog.age = 1
            //犀利的叫声:汪
            dog.bark()
        }
    }
    

    这里我们声明了一个简单的Kotlin类Dog,它包括了两个属性:name和age。name属性默认为null,age属性默认为0。然后我们又声明了两个函数:bark和main。bark描述了Dog的犬吠动作,main函数是该段程序的入口,在该函数内,我们创建了贝贝并初始化它的姓名和年龄。至此,你大概已经知道Kotlin是一种什么样子的语言,现在我们逐一去学习这段程序的组成要素:变量、函数和类,其次也会简单介绍下null检查、区间、条件语句、循环机制。

    变量

    变量分为可变变量和不可变量,那么我们来看下声明它们的关键字:

    使用以上关键字我们尝试定义变量如下:

    val name: String = "贝贝"
    var age: Int = 1
    

    其次,当我们定义变量并赋值时可以省去变量类型,例如:

    val name = "贝贝"
    var age = 1
    

    而当我们尝试去修改变量的值时却提示出现错误

    val name = "贝贝"
    var age = 1
    
    name = "冉冉"  //错误: 使用val定义的变量不可被修改
    age = 2       //使用var定义的变量可被修改
    

    即使var关键字定义的变量允许修改自身的值,但它的类型却是改变不了的。例如:

    val name = "贝贝"
    name = 2   // 类型不匹配
    

    注意,尽管val引用资深是不可变的,但是它指向的对象可能是可变的。例如:

    val hobbies = arrayListOf("啃骨头")
    hobbies.add("睡觉")
    

    函数

    函数定义使用关键字 fun,参数格式为:参数 : 类型

    fun sum(a: Int, b: Int): Int {   // Int 参数,返回值 Int
        return a + b
    }
    

    表达式作为函数体,返回类型自动推断:

    fun sum(a: Int, b: Int) = a + b
    

    无返回值的函数:

    fun printSum(a: Int, b: Int): Unit { 
        print(a + b)
    }
    

    也可以省略不写

    fun printSum(a: Int, b: Int) { 
        print(a + b)
    }
    

    函数的变长参数可以用 vararg 关键字进行标识,例如:

    fun vp(vararg args:Int){
        for(value in args){
            print(value)
        }
    }
    

    类声明由类名、类头和类体构成。类头和类体都是可选的; 如果一个类没有类体,可以省略花括号,例如:

    class Dog
    

    声明有构造函数的类

    列表

    val list = listOf(1, 2, 3)
    
    list .add(4)
    

    集合

    val set= setOf(1, 2, 3)
    
    set.add(4)
    

    字典

    val map = mapOf(1 to "one", 2 to "two", 3 to "three")
    
    map [4] = "four"
    

    区间

    区间表达式由具有操作符形式 .. 的 rangeTo 函数辅以 in 和 !in 形成。区间是为任何可比较类型定义的。以下是使用区间的一些示例:

    for (i in 1..5) print(i) // 输出“12345”
    
    for (i in 5..1) print(i) // 没有输出
    
    if (i in 1..10) { // 等同于 1 <= i && i <= 10
        println(i)
    }
    
    for (i in 1..5 step 2) print(i) //  使用 step 指定步长,输出“135”
    
    for (i in 5 downTo 1 step 2) print(i) // 输出“53”
    
    for (i in 1 until 10) { // 使用 until 函数排除结束元素
         println(i)
    }
    

    if语句

    很多情况下,我们都需要在符合某些条件下才去执行一些操作,先说一下kotlin里的if语句。语法如下:

    if(布尔表达式) {
    执行体
    }

    例如:

    if (dog.age < 15){
        print("Together with me")  
    }
    

    if...else语句

    伪语言描述就是如果满足条件就执行 if 下代码块,不满足条件就执行else下的代码块,例如:

    if (dog.age < 15){
        print("Together with me")  
    } else {
         print("maybe dead!") 
    }
    

    when语句

    Kotlin语言除了提供 if 条件语句外还提供 when 条件语句,相当于 java 语言中的switch case语句。

    when(dog.age){
        1 -> print("dog together with me")
        15 -> print("dog is dead")
    }
    

    我们也可以为when语句添加else, 例如:

    when(dog.age){
        1 -> print("dog together with me")
        15 -> print("dog is dead")
    
        else -> print("")
    }
    

    for循环

    for 循环可以对任何提供迭代器(iterator)的对象进行遍历,语法如下:

    for (item in collection)

    例如:

    for (hobby in hobbies) print(hobby)
    

    while 与 do...while 循环

    while是最基本的循环,它语法如下:

    while(布尔表达式) {
    循环体
    }

    例如:

    while (true) {
        print("Together with me") 
    }
    

    do…while 循环对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。

    do {
    ​ 循环体
    } while (布尔表达式)

    例如:

    dog.age = 1
    do {
        print("Together with me")
        dog.age ++
    } while (dog.age < 15)
    

    写在最后的话,本篇文章仅是对Kotlin 基础语法的简述,很多优秀亦实用的语法并没有涉及到,如果想要进一步学习请查阅Kotlin进阶篇。

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注