遊び場でこのコードを実行しようとすると、extraneous argument label 'contentsOf:' in call array.append(contentsOf: test)
エラーが発生します。
import Cocoa
var array:[Any] = []
let test = [""]
array.append(contentsOf: [""])
array.append(contentsOf: test)
なぜこうなった?私が理解しているように、空の文字列を持つ2つの等しい配列があります。
コメントで特定の質問に答えるには、キャストする必要があるので、Swiftはあなたが知っていることを知っています。この場合、SKShapeNode
はSKNode
申し分なく、as
を使用してキャストできます。失敗する可能性のあるキャストを行っていた場合は、as?
を使用して安全にアンラップする必要があります。
var allNodes: [SKNode] = []
let onlyShapeNodes: [SKShapeNode] = []
allNodes.append(contentsOf: onlyShapeNodes as [SKNode])
元の一般的な例では、これも機能します。
var array: [Any] = []
let test = ["", ""]
array.append(contentsOf: [""] as [Any])
array.append(contentsOf: test as [Any])