Hello World
老规矩,让我们怀念一下——用Kotlin
输出Hello, World!
:
fun main() {
println("Hello World")
}
和其他语言相似,Kotlin
也是以main()
函数作为程序运行的入口的。
变量声明
Kotlin
声明变量使用两个关键字:val
和var
。
val
:声明一个值不可更改的变量。可以在声明的适合初始化,也可以先声明后初始化,一旦初始化,就不能再对它重新赋值,否则报错。可以把使用这个声明的变量理解为一个“常量”。var
:声明一个值可更改的变量。
提到变量声明,不得不说变量的类型。Kotlin
内置众多数值类型:
关键字 | 范围 |
---|---|
Int | |
Byte | |
Short | |
Long | |
Float | |
Double |
Kotlin
中声明变量的语法——变量类型写在变量名后面:
val constant: Int = 1 /* 声明一个名为constant的Int型的“不可变”变量 */
var variable: Byte /* 声明一个名为variable的Byte型的“可变”变量 */
注意:Kotlin
语句不使用;
(分号)结尾。(当然,加上似乎也不会报错)
建议:明确val
和var
的使用,优先考虑使用val
。
函数声明
函数的声明使用fun
关键字(和JavaScript
相似),下面声明了一个没有返回值的函数:
fun myFunc() {
// TODO
}
有返回值的怎么声明呢?参考变量的声明:
fun myFunc(): String {
return "Hello Kotlin"
}
当然,Kotlin
支持这么玩:
fun myFunc(): String {
return if (true) {
"True"
} else {
"False"
}
}
上面这个有点类似于C/C++
语言中的冒号表达式condition ? true : false
(很可惜,Kotlin
不支持这个)。
还可以这么玩
fun myFunc(): String = if(true) {
return "True"
} else {
return "False"
}
这种情况可以看成是将return
关键字用=
替换了。
很容易推想出,需要给传入参数的话,这么定义:
fun myFunc(id: Int): String = if(id) {
return "True"
} else {
return "False"
}
匿名函数
Kotlin
支持匿名函数。匿名函数就是没有函数名称的函数。
举个例子:
定义一个匿名函数:
val strLenFunc: (String) -> Int = { input ->
input.length
}
该函数完成的功能是接收一个字符串类型的变量输出,然后输出它的长度(类型为整型值)。
调用该匿名函数:
val strLen: Int = strLenFunc("Kotlin")
不难看出,除了定义的时候有些奇特,调用匿名函数的时候跟普通函数差不多。
高阶函数
函数也是分阶级的。一个函数可以将另一个函数当作参数,将其他函数用作参数的函数称为高阶函数。
举个例子:
fun strMapper(str: String, mapper: (String) -> Int): Int {
return mapper(str)
}
类
类的声明和定义
和C++、Java一样,是通过关键字class
来完成。
如果没有显示声明,类中出现的变量、函数的访问类型均为public
,即可从外部访问。