【问题标题】:How can I resolve this Loop problem in kotlin?如何在 kotlin 中解决此循环问题?
【发布时间】:2021-06-13 20:25:19
【问题描述】:

我正在观看关于 Kotlin 中循环和范围的旧编程教程,我尝试复制相同的代码,但显然我的 Kotlin 版本响应不佳。

原来的源代码是:

val capitals= listOf("London", "Paris", "Rome", "Madrid")

for(capital in capitals){
  println(capital)
}

我有两个问题:第一,为什么要再次使用大写和大写?

另外我在介绍源码的时候kotlin添加了这些符号<>

更新了 Kotlin 代码(让我担心的一个代码):

val capitals = listOf<> // (this is normal the problem is <>)

当我将listOf 添加到自动显示的值时。

另外,我不知道为什么for(capital in capitals) {...} 会失败。

【问题讨论】:

  • 再次使用它们是什么意思?如果您对&lt;&gt; 感到疑惑,请在文档中搜索generics 上的页面。
  • 呃,那在哪里?
  • 如果我很烦人,我也是新编码。
  • kotlinlang.org/docs/generics.html 但是查看该文档,我发现它的编写方式就好像您已经非常熟悉 Java 泛型一样。你可以在这里阅读:docs.oracle.com/javase/tutorial/java/generics/index.html Java 语法有点不同,但基本概念是一样的。
  • Generic 指定列表的类型,列表的内容。例如:字符串、整数甚至自己的类,如汽车或客户。在您的情况下,列表的内容是字符串: listOf("London", "Paris", "Rome", "Madrid")

标签: list loops android-studio kotlin range


【解决方案1】:

您提供的代码按预期工作:

val capitals = listOf("London", "Paris", "Rome", "Madrid")

for(capital in capitals){
    println(capital)
}

打印:

London
Paris
Rome
Madrid

为什么要再次使用大写和大写?

使用for loop 中的capital 变量,您可以通过迭代来存储capitals 列表的每个值,以便根据需要进行处理。

当您声明像这样val capitals = listOf("London", "Paris", "Rome", "Madrid") 的列表时,这意味着您想稍后访问它的元素。您只能通过其名称 capitals 访问其元素,您可以在 for 循环中执行此操作。

对于generics,Kotlin 中的类或接口可以有类型参数,类型参数定义在&lt;&gt; 括号中。 List 就是这样的一类。 如果可以推断出泛型参数,例如可以省略类型参数和&lt;&gt; 括号。

【讨论】:

    猜你喜欢
    • 2021-03-12
    • 2019-07-09
    • 2017-06-24
    • 1970-01-01
    • 2020-02-16
    • 2019-10-26
    • 2023-03-05
    • 1970-01-01
    • 2019-01-09
    相关资源
    最近更新 更多