- Learn Kotlin Programming(Second Edition)
- Stephen Samuel Stefan Bocutiu
- 375字
- 2021-06-24 14:13:27
Loops
Kotlin supports the usual duo of loop constructs found in most languages—the while loop and the for loop. The syntax for while loops in Kotlin will be familiar to most developers, as it is exactly the same as most C-style languages:
while (true) { println("This will print out for a long time!") }
The Kotlin for loop is used to iterate over any object that defines a function or extension function with the name iterator. All collections provide this function:
val list = listOf(1, 2, 3, 4) for (k in list) { println(k) } val set = setOf(1, 2, 3, 4) for (k in set) { println(k) }
Note the syntax using the in keyword. The in operator is always used with the for loops. In addition to collections, integral ranges are directly supported either inline or defined outside:
val oneToTen = 1..10 for (k in oneToTen) { for (j in 1..5) { println(k * j) } }
Any object can be used inside a for loop provided that it implements a function called iterator , making this an extremely flexible construct. This function must return an instance of an object that provides the following two functions:
- The fun hasNext(): Boolean operator
- The fun next(): T operator
The compiler doesn't insist on any particular interface, as long as the object returned has those two functions present. For example, in the standard String class, Kotlin provides an iterator extension function that adheres to the required contract, and so strings can be used in a for loop to iterate over the individual characters:
val string = "print my characters" for (char in string) { println(char) }
Arrays have an extension function called indices, which can be used to iterate over the index of an array:
for (index in array.indices) { println("Element $index is ${array[index]}") }
- HornetQ Messaging Developer’s Guide
- Android應用程序開發與典型案例
- CentOS 7 Linux Server Cookbook(Second Edition)
- AngularJS深度剖析與最佳實踐
- Microsoft System Center Orchestrator 2012 R2 Essentials
- Python數據可視化之Matplotlib與Pyecharts實戰
- Spring快速入門
- Mastering Android Game Development
- HTML5+CSS3 Web前端開發技術(第2版)
- Building Microservices with .NET Core
- INSTANT Adobe Edge Inspect Starter
- Emgu CV Essentials
- Qt5 C++ GUI Programming Cookbook
- 深度學習入門:基于Python的理論與實現
- Mastering Apache Camel