kotlin语法学习一

来源:互联网 发布:mac好用的vpn 编辑:程序博客网 时间:2024/05/16 16:10

包声明

一个源文件以包声明开始

kotlin
package foo.bar
fun bza(){}

bzd的完整包名是foo.bar.bza

包的导入

  • import foo.Bar //Bar可以直接使用
  • import foo.* //foo下的所有都可以使用
  • import bar.Bar as bBar //如果包名冲突可以使用as关键字重命名解决冲突

定义函数

override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main2)        println(methodName(16,18));    }//fun 方法名(参数名:数据类型,参数名:数据类型):返回值类型{}    fun methodName(a: Int, b: Int): Int {        return a + b;    }

如果函数只有一个表达式的函数体,并作为返回值函数可以直接写成:

  fun methodName(a: Int, b: Int)=a + b;

无返回值可以不写返回值类型,也可以写成

//在控制台中println的log为:I/System.out fun printMethod(a: Int, b: Int): Unit {        println(a + b); }

定义局部变量

常量

直接初始化

 val a:Int =1;

根据赋值确定数据类型

 val b = 1;

没有初始化值时必须要声明类型

 val c:Int; c = 10;

变量

//自动推到Int类型var x =5 

字符串模板

$变量名${表达式}

使用循环

val items = listOf<String>("a","b","c");//输出每个itemfor (item in items){    println(item)}//输出item索引for(index in items.indices){    println(index);}

While 循环与java类似

when表达式

 fun methodWhen(obj: Any) {        val result: String;        result = when (obj) {            1 -> " int 1";            "1" -> " string 1";            else -> "unknown"        }        println(result)    }

使用ranges

//x在1到y+1的范围x in 1..y+1//x不在1到y+1的范围x !in 1..y+1//范围迭代for (x in 1..5)//步进for(x in 1..10 step 2)for(x in 1 downTo 0 step 2)for (x in 1..10){ println("1..10=$x")}for (x in 1..10 step 2){    println("1..10 step 2=$x")}for (x in 10 downTo 1 step 2){    println("10 downTo 1 step 2=$x")}

使用集合

val items = listOf("apple","banana","kiwi") val items = setOf("apple", "banana", "kiwi")