将类或基元类型传递到函数中时,在函数中对参数所做的任何更改都将反映在类之外。这基本上与inout
参数应该做的事情相同。
inout参数最好的用例是什么?
发布于 2017-05-04 21:06:48
默认情况下,函数参数是常量。试图从函数体中更改函数参数的值会导致编译时错误。这意味着您不能错误地更改参数的值。如果希望函数修改参数值,并且希望这些更改在函数调用结束后仍然有效,请将该参数定义为in-out参数。
发布于 2017-10-18 22:19:22
inout参数允许我们更改值类型参数的数据,并在函数调用完成后保持更改不变。
发布于 2018-10-04 18:58:24
如果您使用类,那么,正如您所说的,您可以修改类,因为参数是对类的引用。但当您的参数是值类型时,这将不起作用(https://docs.swift.org/swift-book/LanguageGuide/Functions.html - In-Out Parameters部分)
使用inout的一个很好的例子是这个(为CGPoints定义数学):
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
}
https://stackoverflow.com/questions/34486052
复制相似问题