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进阶篇。

发表评论

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