美文网首页Kotlin编程
Kotlin笔记 基础语法

Kotlin笔记 基础语法

作者: yangweigbh | 来源:发表于2017-01-13 22:08 被阅读43次

    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<String>) { 
      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<String>) { 
      for (arg in args) { 
        print(arg) 
      } 
    }
    
    //或者遍历index
    
    for (i in args.indices) { 
      print(args[i])
    } 
    

    while-loop

    fun main(args: Array<String>) {
        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笔记 基础语法

        本文链接:https://www.haomeiwen.com/subject/rynsbttx.html