XcodeのプレイグラウンドでArrayに拡張機能を書き込もうとしています。関数が呼び出されたときに0で埋められるように配列を変更する関数を記述したいと思います。私は自分自身から値を「取得」しようとした場合、しかし、配列の拡張子、メンバー 'subscript'へのあいまいな参照
self[i] = 0
:このコードはでエラーのため、実行されません
import Foundation
extension Array {
mutating func zero() {
for i in 0..<self.count {
self[i] = 0 // ERROR - Ambiguous reference to member 'subscript'
}
}
}
:私が使用しようとしているコードはこれです、私は問題はありません。たとえば、
import Foundation
extension Array {
mutating func zero() {
for i in 0..<self.count {
print(self[i])
}
}
}
にはエラーはなく、期待どおりに動作します。
私の質問は次のとおりです。アレイを変更できないのはなぜですか?交換また
、:と
self[i] = 0
、
self.append(0)
も誤差が生じます。 ( '(int)'型の引数リストで 'append'を呼び出すことはできません)
それで、私はそれを変えることはできません。
または '要素:IntegerLiteralConvertible'を使用すると、(整数または浮動小数点値の配列に対して)少し普遍的にすることができます。 –
ありがとう、@ MartinR、その変更を行った! – Gavin
ありがとうGavinと@Martin R!これにより、エラーが修正されます。私はこのトピックをもっと深く、今日後で掘り下げて調べる必要があります。 – OhNo