包
包声明
一个源文件以包声明开始
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");
//输出每个item
for (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")