[kotlin] kotlin基础

115 阅读2分钟

OO or Functional

Kotlin既支持OO,又支持函数式编程。Kotlin代码会编译成JVM字节码,所以Kotlin与Java是100%兼容的,可以互相调用。Kotlin是静态类型语言。

函数结构

fun main(args: Array<String>): Int {    // code here }

Kotlin内的函数定义以fun关键字开始,后跟函数名,后面通过括号()将函数参数包裹。返回结果的类型在参数列表的后面,用冒号与参数列表区分开。

如果函数没有标明返回类型,或者返回类型为Unit,均表示函数不返回值。

单表达式的函数,可以省略花括号,直接在返回类型的后面,通过等于号(=)连接单表达式函数体,如:fun max(a: Int, b: Int): Int = if (a < b) b else a

循环

Kotlin支持3种循环结构:while,do-while, for

条件语句

注意,如果if语句作为表达式,必须包含else分支,否则编译器报错。

基本类型

整数

Kotlin包含4种基本类型:

  1. Byte: 8bit
  2. Short: 16bit
  3. Int: 32bit (默认类型)
  4. Long: 64bit

0b前缀表示二进制数字,如:0b10。0x表示十六进制数字,如:0xAB。

注意,Kotlin不支持八进制数字。

浮点数字

Kotlin支持2种浮点类型:Float和Double(默认类型)

布尔类型

Boolean类型有2种值:true和false

字符/字符串

Character表示字符,如'A',用单引号。String表示字符串,如“A”,用双引号。

数组

可以使用arrayOf方法创建数组,如:var a = arrayOf(1,2)。a.size返回2。

遍历数组可以使用for-in,如:for (item in itemArray)。如果想在遍历的时候获取index,使用for ((index, item) in itemArray.withIndex())

Range

1..5 表示[1, 5]闭区间。

1 until 5表示 [1, 5)左闭右开区间。

5 downTo 1 表示反向输出[1, 5]。

Range通常用于循环中,如:

for (x in 1..5) println(x) # 单语句循环体,可以省略花括号

操作Range时,可以指定step,表示步长,如:for (x in 1..5 step 2) println(x) 输出1, 3, 5。

变量赋值

需保证涉及的2个变量必须是相同类型,否则编译报错。若为不同类型,需要进行类型转换。每个数值类型的对象都有如下的类型转换方法:toByte(), toInt(), toLong(), toShort(), toFloat(), toDouble()。

注意:对浮点数使用toInt,小数部分会直接砍掉,不会进行四舍五入。

局部变量在使用前(包括作为函数的返回值)必须赋值,否则编译器报错。

Content mainly excerpted from 「Head First Kotlin」 by Dawn Griffiths and David Griffiths