Kotlin 循环
当您处理数组时,经常需要遍历所有元素。
要遍历数组元素,请使用 for
循环和 in
操作符:
示例
输出 cars
数组中的所有元素:
val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda") for (x in cars) { println(x) }
您可以遍历各种类型的数组。在上面的示例中,我们使用了一个字符串数组。
在下面的示例中,我们遍历一个整数数组:
示例
val nums = arrayOf(1, 5, 10, 15, 20) for (x in nums) { println(x) }
传统的 For
循环
与 Java
和其他编程语言不同,Kotlin
中没有传统的 for
循环。
在 Kotlin
中,for
循环用于遍历数组、范围以及其他包含可计数值的事物。
Kotlin 范围
使用 for
循环,您还可以使用 ..
创建值的范围:
示例
打印整个字母表:
for (chars in 'a'..'x') { println(chars) }
您还可以创建数字范围:
示例
for (nums in 5..15) { println(nums) }
注意:第一个和最后一个值包含在范围内。
检查值是否存在
您还可以使用 in
操作符检查值是否存在于范围内:
示例
val nums = arrayOf(2, 4, 6, 8) if (2 in nums) { println("存在!") } else { println("不存在。") }
示例
val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda") if ("Volvo" in cars) { println("存在!") } else { println("不存在。") }
中断或继续一个范围
您还可以在范围/for
循环中使用 break
和 continue
关键字:
示例
当 nums
等于 10
时停止循环:
for (nums in 5..15) { if (nums == 10) { break } println(nums) }
示例
跳过循环中的 10
并继续下一个迭代:
for (nums in 5..15) { if (nums == 10) { continue } println(nums) }
Kotlin 函数
函数是只有在调用时才运行的一段代码。
您可以将数据(称为参数)传递给函数。
函数用于执行某些操作,它们也被称为方法。
预定义函数
事实证明,您已经知道函数是什么。在本教程中,您一直在使用它!
例如,println()
是一个函数。它用于向屏幕输出/打印文本:
示例
fun main() { println("Hello World") }
创建您自己的函数
要创建您自己的函数,请使用 fun
关键字,并写出函数名称,后跟括号 ()
:
示例
创建一个名为 myFunction
的函数,该函数应该输出一些文本:
fun myFunction() { println("I just got executed!") }
调用函数
现在您已经创建了一个函数,可以通过调用它来执行。
要在 Kotlin
中调用函数,写出函数名,后跟两个括号 ()
。
在下面的示例中,myFunction()
被调用时会打印一些文本(操作):
示例
fun main() { myFunction() // 调用 myFunction } // 输出 "I just got executed!"
如果您愿意,可以多次调用一个函数:
示例
fun main() { myFunction() myFunction() myFunction() } // I just got executed! // I just got executed! // I just got executed!
函数参数
信息可以作为参数传递给函数。
参数在函数名称之后指定,在括号内。您可以添加任意数量的参数,只需用逗号分隔。请注意,您必须指定每个参数的类型(Int
、String
等)。
下面的示例有一个函数,它接收一个名为 fname
的字符串参数。当调用函数时,我们传递一个名字,它在函数内部用于打印全名:
示例
fun myFunction(fname: String) { println(fname + " Doe") } fun main() { myFunction("John") myFunction("Jane") myFunction("George") } // John Doe // Jane Doe // George Doe
当一个参数传递给函数时,它被称为实参。所以,从上面的示例中:fname
是一个参数,而 John
、Jane
和 George
是实参。
多个参数
您可以拥有任意数量的参数:
示例
fun myFunction(fname: String, age: Int) { println(fname + " is " + age) } fun main() { myFunction("John", 35) myFunction("Jane", 32) myFunction("George", 15) } // John is 35 // Jane is 32 // George is 15
注意:使用多个参数时,函数调用必须具有与参数数量相同的实参,并且实参必须以相同的顺序传递。
返回值
在上面的示例中,我们使用函数输出一个值。在下面的示例中,我们将使用函数返回一个值并将其赋值给一个变量。
要返回一个值,请使用 return
关键字,并在函数的括号后指定返回类型(在此示例中为 Int
):
示例
具有一个 Int
参数和 Int
返回类型的函数:
fun myFunction(x: Int): Int { return (x + 5) } fun main() { var result = myFunction(3) println(result) } // 8 (3 + 5)
使用两个参数
示例
具有两个 Int
参数和 Int
返回类型的函数:
fun myFunction(x: Int, y: Int): Int { return (x + y) } fun main() { var result = myFunction(3, 5) println(result) // 8 (3 + 5)
返回值的简写语法
还有一种更简短的语法来返回值。您可以使用 =
操作符代替 return
,而无需指定返回类型。Kotlin
足够聪明,可以自动找出返回类型:
示例
fun myFunction(x: Int, y: Int) = x + y fun main() { var result = myFunction(3, 5) println(result) // 8 (3 + 5) KOTLIN 复制 全屏
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding
,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
Kotlin 是一种现代编程语言,它结合了简洁的语法和强大的功能,特别适用于Android开发和多平台项目。在使用 Kotlin 进行编程时,掌握循环和函数是编写高效代码的关键。以下是对 Kotlin 中循环和函数的详细解释,旨在提供一份高效编程的指南。
Kotlin 中的循环
Kotlin 提供了多种循环结构,用于重复执行代码块直到指定的条件得到满足。
- for 循环 - 用于遍历任何提供了迭代器的对象,或者通过区间表达式进行遍历。
for (i in 1..5) { println(i) } // 输出: 1 2 3 4 5 kotlin复制代码
还可以通过索引进行遍历:
for (i in array.indices) { println(array[i]) } kotlin复制代码
- while 循环 - 当指定的条件为真时,重复执行代码块。
var i = 0 while (i < 5) { println(i) i++ } kotlin复制代码
- do..while 循环 - 至少执行一次代码块,然后检查条件是否满足以决定是否继续循环。
var i = 0 do { println(i) i++ } while (i < 5) kotlin复制代码
- 循环控制 - Kotlin 提供了
break
和continue
关键字来控制循环的流程。
Kotlin 中的函数
函数是 Kotlin 中用于定义可重用代码块的结构。以下是 Kotlin 函数的一些关键特性:
- 函数定义 - 使用
fun
关键字来定义函数。
fun printMessage(message: String): Unit { println(message) } kotlin复制代码
Unit
返回类型可以省略,因为 Kotlin 可以推断出没有返回值的函数。
- 参数 - 函数可以有零个或多个参数。参数可以有默认值。
fun greet(name: String, greeting: String = "Hello"): Unit { println("$greeting, $name!") } kotlin复制代码
- 具名参数 - 在调用函数时可以指定参数名,这样就不需要按照定义的顺序传递参数。
greet(greeting = "Hi", name = "Alice") kotlin复制代码
- 可变参数 - 使用
vararg
关键字定义可变数量的参数。
fun printAll(vararg messages: String) { for (message in messages) { println(message) } } kotlin复制代码
- 高阶函数 - 接受其他函数作为参数或返回一个函数的函数。
fun <T> doWithElement(element: T, action: (T) -> Unit) { action(element) } kotlin复制代码
- Lambda 表达式 - 便捷地创建匿名函数。
doWithElement("Hello") { println(it) } kotlin复制代码
高效编程实践
- 避免不必要的循环 - 尽量使用集合操作如
map
、filter
来减少显式的循环。 - 使用尾递归优化 - 对于需要大量递归的情况,考虑使用尾递归以优化性能。
- 内联函数 - 对于传递 Lambda 表达式的函数,使用
inline
关键字可以减少运行时开销。
通过上述指南,您应该能够更好地理解 Kotlin 中的循环和函数,并能够编写更加高效和简洁的代码。Kotlin 的设计哲学鼓励开发者编写易于理解和维护的代码,而掌握循环和函数是实现这一目标的关键步骤。
如果您想了解更多关于 Kotlin 的循环和函数的信息,以下是一些官方文档和资源,它们可以提供额外的参考和详细信息:
- Kotlin 官方文档 - 循环:https://kotlinlang.org/docs/control-flow.html# loopstalktradetecheurogyft
- Kotlin 官方文档 - 函数:https://kotlinlang.org/docs/functions.html
- Kotlin 官方文档 - 高阶函数和 Lambda 表达式:https://kotlinlang.org/docs/lambdas.html
这些资源将为您提供关于 Kotlin 语言中循环和函数的详细信息,以及如何有效地使用它们。