Skip to main content
 首页 » 操作系统

function之Swift之更改函数调用的数组值

2024年01月01日34daizhj

我想为我的函数调用更改数组值。

调用函数计算的 ViewController2 代码

class ViewController2: UIViewController , UITableViewDelegate, UITableViewDataSource { 
 
var springDisplacement : [Float] {return calculate(forceView2, stiffView2, springNumView2) } 
 
} 

函数计算代码

public func calculateBoundary (f:[Float], s:[Float], n:NSInteger) -> (forceBound1:Float, forceBound2: Float, displacement:[Float]) { 
 
    println("\nForces in the array are") 
    for rows in 0...n{ 
        if(rows==0||rows==n) 
        { f[rows] = 0.0 }                 
            println(f[rows])           
        } 
} 

我有一个错误:'@lValue $T5' 与'Float' 不同,当我想更改我的 f[rows] = 0.0

有什么建议吗?

请您参考如下方法:

这是因为f参数是一个不可变数组。您可以使用函数签名将其更改为 可变数组 参数,如下所示

func calculateBoundary (var f:[Float], var s:[Float], n:NSInteger)  -> (forceBound1:Float, forceBound2: Float, displacement:[Float]) { // } 

如果您还想修改传递给函数的原始数组,则需要使用inout 参数。

func calculateBoundary (inout f:[Float],inout s:[Float], n:NSInteger) -> (forceBound1:Float, forceBound2: Float, displacement:[Float]) { // } 

你可以这样调用它

var f : [Float] = [1.0,2.0] 
var g : [Float] = [1.0,2.0] 
 
let result = calculateBoundary(&f, &g, 1)