【发布时间】:2018-08-03 12:49:58
【问题描述】:
编辑我根据一些建议对其进行了更改,但现在出现了不同的错误
我正在尝试编写一个读取数组的函数,如果元素的数量小于 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);
新错误
我不知道我错过了什么,或者我使用循环错误。从那以后,我才刚刚开始学习 swift。
【问题讨论】:
-
只需擦除 w on 方法声明之前的“_”。如果使用 _,则调用方法时不需要放置参数标签
-
要么将签名更改为
func arrayValueInputter(w: inout Array<Int>) { ... },要么像arrayValueInputter([1, 3, 9, 10]);一样调用它(但在inout的两种情况下,您都需要使输入可变)。 -
我正在回滚这一点,因为您似乎正在尝试向您的单个问题添加更多问题。我们希望每个...问题一个问题,拜托。如果您还有其他问题,请鼓励您提出其他问题。
标签: arrays swift function methods