Kotlin笔记|Kotlin笔记 基础语法

1.Package 同Java一样,定义package

package my.demo import java.util.*

源文件里所有的内容都在文件头定义的包里,如果文件头没有定义包,那么所有内容属于没有名字的“default” package
package foo.barfun baz() {}class Goo {}

baz的全名叫foo.bar.baz(), Goo的全名为foo.bar.Goo
2.Import 同Java的语法类似,import 可以带上as取别名
import bar.Bar as bBar
import除了可以引用类,还可以引用
  • top level function和properties,
  • 单例的方法 和属性
  • 枚举常量
没有import static
3.定义函数
fun sum(a: Int, b: Int): Int { return a + b }

如果函数只有一个表达式可以写成
fun sum(a: Int, b: Int) = a + b

如果不要返回值,则写为Unit,或者省略
fun printSum(a: Int, b: Int): Unit { print(a + b) }

或者
fun printSum(a: Int, b: Int) { print(a + b) }

4.定义局部变量 只读变量为val修饰,只能被赋值一次,可读可写变量用var修饰,不写type的变量必须被初始化:
val a: Int = 1 val b = 1 // `Int` type is inferred val c: Int // Type required when no initializer is provided c = 1 // definite assignment

5.String template
fun main(args: Array) { if (args.size == 0) return print("First argument: ${args[0]}") }

6. 如果一个引用有可能为null,需要在type后加个?,比如以下函数就有可能返回null
fun parseInt(str: String): Int? { // ... }

7其他 for-loop
fun main(args: Array) { for (arg in args) { print(arg) } }//或者遍历indexfor (i in args.indices) { print(args[i]) }

while-loop
fun main(args: Array) { var i = 0 while (i < args.size) { print(args[i++]) } }

range
if (x in 1..y-1) { print("OK") }

【Kotlin笔记|Kotlin笔记 基础语法】in可以遍历collection,也可以检查元素是否在collection里
for (name in names) { println(name) }if (text in names) { // names.contains(text) is called print("Yes") }

    推荐阅读