为什么在尝试运行以下内容时,我会陷入Playground的编译循环中?
func makeIncrementer(byHowMuch: Int) -> ((Int) -> Int) {
func addArg(number: Int) -> Int {
return 2 + number
}
return addArg
}
var twoTimesIncrementer = makeIncrementer(2)
twoTimesIncrementer(7)
另外,如何调用函数以非函数语言返回函数? Lambda还在吗?
答案 0 :(得分:1)
首先,我不会陷入编译循环,它会按预期返回9。游乐场有很多错误,如果某些东西在游乐场不起作用,将它粘贴到一个实际的项目中,尝试运行它,你会看到它是否真的有效。
其次,返回函数的函数仍然是一个函数,它的命名不会随其返回类型而改变。唯一需要注意的是,在Swift中你可以将函数作为First-Class Objects,你的Declare @IdsCSV NVARCHAR(MAX),@ObjectMasterId INT = NULL
EXECUTE SP_EXECUTESQL
@SqlQuery,
N'@IdsCSV NVARCHAR(MAX) OUTPUT,@ObjectMasterId INT = NULL OUTPUT',
@IdsCSV = @IdsCSV OUTPUT,
@ObjectMasterId = @ObjectMasterId OUTPUT
是一个变量。
除此之外,我的建议并不是试图过度沉迷于某些模式或功能的命名。您是否有一个非功能性语言的示例,您可以在其中定义返回函数的函数?