字符串还有两个有趣的语法(和PHP的字符串类似 ,直接看例子吧)
var content = """ 这里面可以写各种东西 var name = "" ..... 这个就类似 html 里面的 <pre></pre>标签 $name ====> ${'$'} // 这个是在字符串里面输出 $ """ var templ = "i am $name, my number is ${ name + number}" //字符串模板模板里面的 ${} 或者 $变量名 这个就是一个表达式,${}里面还可以调用函数
3.流程控制条件语句 if(if可以是一个表��式,也可以有返回值)
var number1 = 0x0033 var number2 = 0x0022 var flag: Boolean = false // 一般的 if if(number1 > number2){ flag = true }else{ flag = false } // 有返回值的 if flag = if (number1 > number2){ println(".....") true // 吧返回值放到最后就可以了 }else{ println("-----") false } // 表达式的 if flag = if (number1 > number2) true else false循环语句 for while do..while
for
/** * * 以前的 for (int i = 0;i < 10;i++) 循环已经不行了 * for 专门用来迭代 有 iterator 方法的集合 * */ var numbers = arrayOf(1,2,3,4,5) for (item in numbers){ //.. } for (item in numbers.iterator()){ //.. } /** * * 这里是的index 是下标 0 ,1 ,2, 3, 4,... * 查看源码发现 indices 其实返回的就是一个数组 Array 实际上也是使用的 iterator * */ for (index in numbers.indices){ // .. } /** * 这里 (index,value) 其实就是下标 和 对应的值 * 查看源码发现 withIndex 其实返回的就是一个数组 Array 实际上也是使用的 iterator * */ for((index,value) in numbers.withIndex()){ // ... }所以for循环就是专门用来迭代 iterator 的 ,只要 in 的右边返回的是一个包含iterator(): Iterator<T>方法的对象(或者是直接是一个Iterator对象)就可以了
while(偷哈懒 ~~)
while (x > 0) { x-- } do { val y = retrieveData() } while (y != null) // y is visible here!when语句(这个就和以前的 switch类似 , switch 和 if 的结合)
var number3 = 100 when(number3){ in 1..101 -> println("1") in 10..102 -> println("2") else -> println("3") } // 结果是 3 when{ number3 in 1..102 -> { //... } number3 == 100 -> { //... } else -> { //... } }break 和 continue (这个就是多了一个标签的情况)
while(number3 < 200){ if(number3 % 2 == 0){ continue } if(number3 == 150){ break } number3++ } //添加标签的情况 tagert@ while(number3 < 200){ while(number3 < 150){ break@tagert } number3++ }