Kotlin笔记 基础语法

1.Package

同Java一样,定义package

package my.demo
import java.util.*

源文件里所有的内容都在文件头定义的包里,如果文件头没有定义包,那么所有内容属于没有名字的“default” package

package foo.bar

fun 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) 
  } 
}

//或者遍历index

for (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")
}

in可以遍历collection,也可以检查元素是否在collection里

for (name in names) {
    println(name)
}

if (text in names) { // names.contains(text) is called
    print("Yes")
}

你可能感兴趣的:(Kotlin笔记 基础语法)