在Kotlin中,可以从闭包的外部函数返回。
fun main(args: Array<String>) {
val letters = listOf("A", "B", "C")
fun lookForLetter(letter: String, letters: List<String>){
letters.forEach { l ->
if (l == letter) {
println("Found")
return
}
println(l)
}
println("Completed")
}
lookForLetter("A", letters = letters)
}
输出:
建立
在Swift中,return退出闭包的执行
var letters = ["A", "B", "C"]
func lookForLetter(letter: String, letters: [String]) {
letters.forEach { (l) in
if l == letter {
print("Found");
return
}
print(l)
}
print("Completed")
}
lookForLetter(letter: "A", letters: letters)
输出:
建立
B
C
完成
在Swift中有没有办法达到同样的效果?
嘿,在斯威夫特,你这样做
func lookForLetter(letter: String, letters: [String]) {
for l in letters {
if l == letter {
print("Found");
return;
}
print(l)
}
print("Completed")
}
也
使用 forEach 方法在两个重要方面与 for-in 循环不同:
>
不能使用 break 或 continue 语句退出正文闭包的当前调用或跳过后续调用。
在body闭包中使用return语句只会从对body的当前调用中退出,而不会从任何外部范围退出,并且不会跳过后续调用。
https://developer.apple.com/documentation/swift/array/1689783-foreach
Swift没有来自关闭的非本地回报。换句话说,没有直接的方法可以从多个级别返回。这仅适用于Kotlin中的内联函数,但Swift没有这种区别。
还有其他收集方法在找到元素后停止,例如 index(where:)
)。
func lookForLetter(letter: String, letters: [String]) {
guard let _ = letters.index(where: { (l) in
if l == letter {
print("Found");
return true
}
print(l)
return false
}) else {
print("Completed")
return
}
}
闭包(Closures)是自包含的功能代码块,可以在代码中使用或者用来作为参数传值。 Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks)以及其他一些编程语言中的 匿名函数比较相似。 全局函数和嵌套函数其实就是特殊的闭包。 闭包的形式有: 全局函数 嵌套函数 闭包表达式 有名字但不能捕获任何值。 有名字,也能捕获封闭函数内的值。 无名闭包,使用轻量级语法,可以根据上下
问题内容: 我正在尝试从Firebase检索字符串值,以获取具有唯一UID的每个用户名,该UID传递给函数,该函数返回用户的用户名。但是-由于firebase 在中,我无法返回任何值,因为操作是 异步 发生的(?)。我想知道这是否是实现此目标的方法? 该函数如下所示: 显然这是行不通的,但是我希望能够通过执行GetUsername(“ whatevertheidmightbe”)来获取数据。有想法
我最近开始学习Swift,遇到了一个关于闭包的问题。我试图将开车的参数传递给func travel并收到错误消息:无法将类型'()'的值转换为预期的参数类型'()- 有人能善意地建议吗?赞赏!
本文向大家介绍详解Swift中的函数及函数闭包使用,包括了详解Swift中的函数及函数闭包使用的使用技巧和注意事项,需要的朋友参考一下 一、引言 函数是有特定功能的代码段,函数会有一个特定的名称调用时来使用。Swift提供了十分灵活的方式来创建与调用函数。事实上在Swift,每个函数都是一种类型,这种类型由参数和返回值来决定。Swift和Objective-C的一大区别就在于Swift中的函数可以
本文向大家介绍JavaScript闭包函数访问外部变量的方法,包括了JavaScript闭包函数访问外部变量的方法的使用技巧和注意事项,需要的朋友参考一下 闭包是指有权访问另一个函数作用域中的变量的函数,但作用域的配置机制有一个需要注意的地方,即闭包只能取得包含函数中任何变量的最后一个值。 如以下案例: 执行结果: 表面上看,似乎每个函数返回的i值都不相同,比如c_arr[0]的值应该是0,c_a
主要内容:以下是纠正/补充内容:Swift 4中的Closures(闭包)类似于组织为块的自包含函数,并且像C和Objective C语言一样调用。 在函数内定义的常量和变量引用被捕获并存储在闭包中。 函数可以看作是闭包的特殊情况,它采用以下三种形式 - 全局函数 嵌套函数 闭包表达式 有名称,不捕获任何值 有名称,从封闭函数中捕获值。 未命名的闭包从相邻块中捕获值 Swift 4语言中的Closures(闭包)表达式遵循清晰,