Kotlin 基础语法
2017-06-08 本文已影响11人
Lost_Robot
Kotlin作y为Android的官方开发语言了,下面我就来开始学习Kotlin的基础语法
1.导入包
关键字 import
import关键字不局限于导入类;您也可以使用它来导入其他声明:
package my.iism.test //包名不必和文件夹路径一致:源文件可放在任意位置
import java.util.* //导入包
import foo.Bar //导入具体的类
import foo.* //导入范围内的所有包
//如果命名有冲突,我们可以使用 as 关键字局部重命名解决冲突
import isst.Bar as iBar //iBar 代表了 isst.Bar
//kotlin文件默认导入的基础包
import kotlin.*
import kotlin.annotation.*
import kotlin.collections.*
import kotlin.comparisons.* (since 1.1)
import kotlin.io.*
import kotlin.ranges.*
import kotlin.sequences.*
import kotlin.text.*
//根据平台决定是否默认导入的增强包
//JVM:
import java.lang.*
import kotlin.jvm.*
//JS:
import kotlin.js
2.定义函数
函数使用fun关键字,定义声明
open class BaseClass { //open表示该类时可继承的,kotlin默认的类是不可继承的
val TAG: String = "BaseClass" //定义常量
//两个Int型参数的函数,显示要求返回值为Int
fun add(a: Int, b: Int): Int {
return a + b
}
//表达式作为函数体,没有显示定义返回值类型,自动推测返回值为Int
fun add2(a: Int, b: Int) = a + b
//表达式作为函数体,显示定义返回值类型Int
fun add3(a: Int, b: Int): Int = a + b
//返回无意义的值,即无返回值,类似于void,这时就不能用return返回具体的值了,也不能用表达式作为函数体
fun out(a: Int, b: Int): Unit {
Log.d(TAG, "sum of $a and $b is ${a + b}")
}
fun out1(a: Int, b: Int): Unit {
var i: Int //定义一个变量
if (a > b) {
return
} else {
i = a + b
// Log.d(TAG, "sum of $a and $b is ${a + b}")
}
Log.d(TAG, "sum of $a and $b is $i")
}
//省略Unit,
fun out2(a: Int, b: Int) {
Log.d(TAG, "sum of $a and $b is ${a + b}")
}
/*总结:使用return返回具体的值时,就必须显示定义函数的返回值类型
表达式作为函数体,可以省略返回值类型
显示定义返回值类型为Unit就不能再使用表达式作为函数体,也不能return返回具体的值,但是可以使用return跳出函数体*/
}
3.定义变量与常量
关键字 val 定义常量,var定义变量
//常量
val a: Int = 0
val b: String? = null
val c = 0 //自动识别为Int型
val d: Double? = 2.0
val e: Boolean = false
val f: Float = 0.9f
val m: Byte = 0
var 定义变量:
var a:String = "Hello"
var b :String? = null //?表示该变量允许为空
var c ="hello world"
var d = 0 //自动推出为Int
var e:Boolean = false
var f:Float? = 9.0f
//....
4.注释
// 这是一个行注释
/* 这是一个多行的
块注释。 */
5.基本数据类型
kotlin中一切皆为对象
1.数字类型
var d: Double = 10.0 //64bit
var f: Float = 10.0f //32bit
var l: Long = 10 //64bit
var i: Int = 10 //32bit
var s: Short = 1 //16bit
var b: Byte = 10 //8bit
2.字面常量
数值常量字面值有以下几种:
十进制(123,Long 类型用大写 L 标记: 123L)
十六进制(0x0F)
二进制 (0b00001011);
注:kotlin不支持8进制
Kotlin 同样支持浮点数的常规表示方法:
默认 double:123.5、123.5e10
Float 用 f 或者 F 标记: 123.5f
v
6.String模板
var str = "Hello world"
var str2 = " str is $str"