gpt4 book ai didi

swift - 函数有返回,返回到哪里?谁拿着它?它能活多久?

转载 作者:搜寻专家 更新时间:2023-11-01 06:19:00 27 4
gpt4 key购买 nike

如果我只是调用函数而不将其传递给变量,我总是很好奇函数的返回值会发生什么。它返回到哪里?谁拿着它?它会持续多久?

下面的例子是Swift写的

func returnFun(input: String) -> String {
return(input)
}

returnFun("Who Am I?")

returnFun 是函数的名称,它返回您放入参数中的任何字符串作为字符串本身。字符串 Who Am I? 已放入参数中,它去哪里了?谁捕获它?还是一回来就销毁?

非常感谢您的时间和帮助

最佳答案

如果您不存储(或以其他方式使用)函数返回值,它将被丢弃。

过程是函数将其返回值提供给调用者(通常通过 CPU 寄存器或堆栈),并由调用者从那里获取它。


当值大于“机器字”(适合单个寄存器的东西)时,例如结构或字符串(如您的示例),事情会变得更有趣。这些可能需要作为指向其他地方内存位置的指针传递,并且需要以某种方式管理(分配和释放)内存。

这里主要的概念区别在于“值类型”和“引用类型”。 Swift 字符串是一种值类型,这意味着它会被复制(至少在概念上,实现可能不同以提高效率,只要它导致相同的可观察行为)。因此,您可以认为当您调用函数时,字符串从调用者复制到函数的局部变量 input 中,并在返回时再次复制(而不是立即丢弃)。

关于swift - 函数有返回,返回到哪里?谁拿着它?它能活多久?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37906481/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com