Mus*_*gXY 5 function pass-by-reference pass-by-value variable-assignment swift
当Swift中的函数被赋值给一个变量或作为嵌套函数从高级函数返回时,它是通过值还是通过引用传递的?我写的时候:
func foo() -> Bool
{
return false
}
var funcVar = foo
Run Code Online (Sandbox Code Playgroud)
确实funcVar收到了对"funcVar"名称的引用foo(),或者是foo()创建并存储在内存中的副本?以下代码的相同问题:
func otherfoo() -> (Int) -> ()
{
func bar(num :Int) {}
return bar
}
var funcVar = otherfoo()
Run Code Online (Sandbox Code Playgroud)
第二个例子特别困惑我,因为,如果我调用funcVar(3)我不应该能够访问bar的情况下函数是通过引用分配/返回的,因为bar它位于同一范围内的另一个函数中funcVar,但它仍然有效(来自C++)背景我只是惊讶它编译).有人可以帮我解释一下这个问题吗?