编辑,我根据一些建议对其进行了更改,但现在出现了不同的错误
我正在尝试编写一个读取数组的函数,如果元素数小于10,则它将继续向其中添加生成的值。
为此,我做了以下功能:
func arrayValueInputter(w : Array<Int>){
var x = 0;
repeat{
x += 2;
w.append(x);
} while w.count < 10
print(w);
}
arrayValueInputter([1, 3, 9, 10]);
print("End Here");
但是每次我运行它都会收到错误消息:
旧错误
error: extraneous argument label 'w:' in call
arrayValueInputter(w: [1, 3, 9, 10]);
旧错误
新错误
Untitled-2.swift:12:5: error: cannot use mutating member on immutable value:
'w' is a 'let' constant
w.append(x);
^
Untitled-2.swift:20:20: error: missing argument label 'w:' in call
arrayValueInputter(&arr);
新错误
我不知道自己缺少什么,或者我使用的循环错误。从那以后,我才开始学习敏捷。
答案 0 :(得分:2)
两个问题:
w
inout
参数var array = [1, 3, 9, 10]
arrayValueInputter(&array)
关于 新错误
再次遇到两个问题:
调用中缺少参数标签“ w:” 的意思是:当您删除下划线时,您必须使用参数标签。下划线表示该标签将被忽略。
arrayValueInputter(w: [1, 3, 9, 10]);
不能在不可变值上使用突变成员表示:默认情况下,所有传递的参数均为常量(let
。将值分配给具有相同名称的新本地 var 。
func arrayValueInputter(w : Array<Int>){
var w = w
var x = 0
...
这是Swift:没有尾随的分号。