前言
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。
Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。
在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。
Kotlin基础语法
KotLin虽然是运行在JVM上的编程语言,但其内部与Java存在着诸多不同,例如在语法定义,编码风格上存在较大差异,例如观察下面的代码:
package com.niansir.demo
fun main() {
val text = "Hello World"
println(text)
}
看起来似乎很正常,甚至感受不到什么差别?我想如果接触过PHP等其他弱类型编程语言的同学会本能的将 val
理解为类似PHP中 var
这样的数据类型,但其实在Kotlin中val、var并不是基础数据类型,严格的讲它只是一个权限修饰符,类似Java中的 final
这样,简单的讲,在Kotlin中val是仅允许赋值一次的变量(如果在val前面再加一个const组成 const val
则是常量),var则是允许多次覆写的变量,那可能就要问了数据类型怎么表示?请看下方代码:
package com.niansir.demo
const val PI = 3.14
fun main() {
val text = "Hello World"
var age : Int
val name:String = "NianSir"
println(text)
println(name)
age = 1
age = 18
println(age)
}
这段代码的运行结果是:
com.niansir.demo.Study001Kt
Hello World
NianSir
18
进程已结束,退出代码为 0
如果是像NianSir这样的小白的话第一眼看上去应该是这个表情吧:😰
是不是脑瓜子嗡嗡的?好像看上去没啥问题但又好像看不太明白?
没错,Kotlin同样可以先声明再赋值,并且尾部可以不用加 ;
结束;除此之外,你也可以在赋值时声明类型也可以不声明让系统自动判断,并且 😂 kotlin语法格式是先写变量名再冒号数据类型: 变量名:数据类型
除了初期接触会不适应外倒也没啥,另外常量只能在函数体外定义(这点很好理解,常量本来就该是初始就不会变的固定值,类似于系统基础参数这样的,如果在函数体内定义则只有该函数运行时才会动态生成值,与常量定义相悖)
我们再来看看标准的函数定义方法:
fun sum(a: Int, b: Int): Int { // Int 参数,返回值 Int
return a + b
}
除此之外还可以表达式作为函数体,返回类型自动推断:
fun sum(a: Int, b: Int) = a + b
public fun sum(a: Int, b: Int): Int = a + b // public 方法则必须明确写出返回类型
还可以构造类似void的无返回类型函数:
fun printSum(a: Int, b: Int): Unit {
print(a + b)
}
// 如果是返回 Unit类型,则可以省略(对于public方法也是这样):
public fun printSum(a: Int, b: Int) {
print(a + b)
}
另外,对于传入参数函数传参数(长度)不固定时,可以使用 vararg
关键字进行标识:
fun vars(vararg v:Int){
for(vt in v){
print(vt)
}
}
// 测试
fun main(args: Array<String>) {
vars(2,0,2,4) // 输出2024
}
...晚点继续连载,累了 😂
评论 (0)