Eclipse下安装: eclipse安装kotlin
如果用Help->Eclipse marketplace安装不成功的话,可以用Help->Install new software
Android studio只要安装3.0版本就可以: Android studio下载
个人觉得学习kotlin语法的话,用eclipse可能比较方便点,直接写直接运行。
1. package
package my.demo
import java.util.*
2. 函数定义
fun函数有两个Int参数和一个Int返回值
fun sum(a: Int, b: Int): Int{
return a + b
}
函数表达式和返回值
fun sum(a:Int, b: Int) = a + b
Unit 函数无返回值
fun sum(a: Int, b: Int):Unit {
println("a: ${a} , b: ${b}")
}
无返回值函数
fun sum1(a: Int, b: Int){
println("aa: ${a}, bb: ${b}")
}
3. 局部变量
不可变局部变量(val)
val a: Int = 1 // immediate assignment
val b = 2 // `Int` type is inferred
可变局部变量
var x = 5
x += 1
4. 注释
// 和 /**/
5. String 模板
var a = 1
val s1 = "a is ${a}"
a = 2
val s2 = "${s1.replace("is", "was")}, but now is ${a}"
6. 条件表达式
fun maxOf(a: Int, b: Int): Int{
if(a > b) {
return a
}else {
return b
}
}
使用if表达式
fun maxOf(a:Int, b: Int) = if(a > b) a else b
7. 使用可为null的值和null检查
一个引用必须被明确标记为可能为null
fun maxOf(a:Int, b: Int): Int? {
println("a: ${a}")
return null
}
8. 类型检查和动态转换
fun getStringLength(obj: Any): Int? {
if (obj is String) {
return obj.length
}
return null
}
9. 循环
val items = listOf("a", "b", "c", "e")
for(zz in items) {
println(zz)
}
//或者
val items = listOf("a", "b", "c", "e", "f")
for(idx in items.indices) {
println(items.get(idx))
println("value: ${items[idx]}")
}
10. while 循环
val items = listOf("a", "b", "c", "e", "f")
var ind = 0
while(ind < items.size) {
println("value: ${items[ind]}")
ind ++;
}
11. when 表达式
fun descrbe(obj: Any): String =
when (obj) {
1 -> "one"
"Hello" -> "greeting"
else -> "else default"
}
12. 范围
检查一个数字是否在一个范围时可以使用in
val x = 10
val y = 8
if(x in 1.. y+1) {
println("x in...")
}else {
println("not in")
}
检查一个数字不在一个范围
if (x !in 1..y+1) {
println("b not in ")
}else {
println("b x in")
}
迭代一个范围
for(x in 1..5) {
println(x)
}
级数遍历一个范围
for(x in 1..5 step 2) {
println(x)
}
13. 使用集合
遍历
var lists = listOf("a", "b", "c")
for(ele in lists){
println(ele)
}
使用in检查某个元素是否在某个集合
when {
"a" in lists -> println("a in list")
"b" in lists -> println("b in list")
}
使用lambda语法过滤集合
var lists = listOf("acake", "apple", "orange")
lists.filter { x->x.startsWith("a") }
.sortedBy { it }
.map { x->x.toUpperCase() }
.forEach{println(it)}
转载于:https://blog.51cto.com/483181/1931412