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

一.定义变量

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()

list.add(“1")

list.add(“2")

使用with:

var list = with(mutableListOf()){

     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)——基础语法)