美文网首页
[学习]拥抱kotlin(二)

[学习]拥抱kotlin(二)

作者: 吴敬悦 | 来源:发表于2021-02-04 23:24 被阅读0次

1. 字符串模版

字符串模版现在很多语言都是支持的,比如说: phpjs 等等。虽然 java 也可以用,但我没看到原生的支持。模块大家都差不多都是以 $ 开头:

val name = "wujing"
 println("I am ${name + "yue"}")

如果只有一个变量,没有其他操作,那么可以省略打括号:

val name = "wujing"
println("I am $name")

2. for 循环

kotlinfor 循环跟其他的有些是不同的,而且有好几点。

2.1 遍历数组

val items: List<String> = listOf("apple", "banana", "kiwifruit")
for (item in items) {
  println(item)
}

这种情况下没有下标,使用下标的方式:

val items: IntArray = intArrayOf(1, 2, 3)
for (i in items.indices) {
  println(items[i])
}

能使用这种方式遍历的都是具备下面的特征:

如上所述,for 可以循环遍历任何提供了迭代器的对象。即:
有一个成员函数或者扩展函数 iterator(),它的返回类型有一个成员函数或者扩展函数 next(),并且有一个成员函数或者扩展函数 hasNext() 返回 Boolean。
这三个函数都需要标记为 operator。

2.2 区间迭代

所谓区间迭代就是从多少到多少,比如:

for (i in 1..10) {
  println(i)
}

这是递增的方式,如果是递减的方式,则:

for (i in 10 downTo 1) {
  println(i)
}

还有数列迭代,也就是每一次不一定都是累加或累减 1 ,还有可能每一次都走两步:

for (i in 10 downTo 1 step 2) {
  println(i)
}

3. if 条件

kotlin 中增加了新的判断语句,也是关键词 in

// 判断一个区间中是否包含对应的数字
if (-1 in 1..9) {
  println("在")
} else {
  println("不在")
}
// 输出: 不在
// 判断一个数组中是否包含指定元素
 val arr = intArrayOf(1, 5, 6, 3, 8)
 if (1 in arr) {
  println("在")
 }
// 输出:在

有存在就有不存在:

if (-1 !in 1..9) {
  println("不在")
}
// 输出:不在

也就是在 in 的前面添加 ! 即可。关于 if 其他的在上一篇中说了: [学习]拥抱kotlin(一)

相关文章

网友评论

      本文标题:[学习]拥抱kotlin(二)

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