首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >何时使用inout参数?

何时使用inout参数?
EN

Stack Overflow用户
提问于 2015-12-28 07:40:13
回答 6查看 44.4K关注 0票数 81

将类或基元类型传递到函数中时,在函数中对参数所做的任何更改都将反映在类之外。这基本上与inout参数应该做的事情相同。

inout参数最好的用例是什么?

EN

回答 6

Stack Overflow用户

发布于 2017-05-04 21:06:48

默认情况下,函数参数是常量。试图从函数体中更改函数参数的值会导致编译时错误。这意味着您不能错误地更改参数的值。如果希望函数修改参数值,并且希望这些更改在函数调用结束后仍然有效,请将该参数定义为in-out参数。

票数 26
EN

Stack Overflow用户

发布于 2017-10-18 22:19:22

inout参数允许我们更改值类型参数的数据,并在函数调用完成后保持更改不变。

票数 0
EN

Stack Overflow用户

发布于 2018-10-04 18:58:24

如果您使用类,那么,正如您所说的,您可以修改类,因为参数是对类的引用。但当您的参数是值类型时,这将不起作用(https://docs.swift.org/swift-book/LanguageGuide/Functions.html - In-Out Parameters部分)

使用inout的一个很好的例子是这个(为CGPoints定义数学):

代码语言:javascript
复制
func + (left: CGPoint, right: CGPoint) -> CGPoint {
  return CGPoint(x: left.x + right.x, y: left.y + right.y)
}

func += (left: inout CGPoint, right: CGPoint) {
  left = left + right
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34486052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档