[Swift] 다양한 유형의 값을 동일하게 정렬
2462 단어 Swift
해결책 var arrayWithAnyType :[Any] = [/* You can insert here any initial values */]
네.
핵심: [Any].다음은인용
단순히 Swift의 Arry를 확장했기 때문에 혼합형의 배열을 만들 수 없다
이는 swift 규격에 따라'시사적 Any'가 허용되지 않기 때문이다.
나는 애니를 명확하게 쓰면 된다고 생각한다.var a :Array = ["String", "String2", "String3" ]
var b :Array = [4, 7, 8 ]
var c: [Any] = [a, b, 0]
c.shift() // -> ["String", "String2", "String3"]
그나저나 import Cocoa를 쓰면 (기본 Any가 동일하다는 것을 인정하지 않음) 자동으로 NSAray로 처리됩니다. 확장이 없어 오류가 발생하지 않습니다.
그럼 우리 한번 검증해 봅시다.
class Foo {}
let aClass :Foo = Foo()
let anArray :Array = [0, 1, 2]
let anInt :Int = 0
// 普通にArray型であると明示的に示すと
var array :Array = ["String" ]
array.append(aClass) // Error "'Foo' is not convertible to 'String'"
array.append(anArray) // Error "'[Int]' is not convertible to 'String'"
array.append(anInt) // Error "'Int' is not convertible to 'String'"
// 上記全て怒られます
array.append("Another") // ->["String","Another"] //唯一怒られません
명시var array :Array<String> = ["String” ]
된 생략 형식이기 때문이다.초기 값에 문자열 형식을 대입했기 때문에, 그때는 문자열을 처리하는 수조로 여겨졌다.
: [Any]로 선언해 보세요.
var arrayWithAnyType :[Any] = ["String"]
arrayWithAnyType.append(aClass) // -> ["String", Foo]
arrayWithAnyType.append(anArray) // -> ["String", Foo, [0, 1, 2]]
arrayWithAnyType.append(anInt) // -> ["String", Foo]
arrayWithAnyType.count // -> 4 // 3要素追加できてます
생략하지 않은 기술은var arrayWithAnyType :Array<Any> = ["String”]
이다.
이것은 무엇에 쓰는 것입니까?
나는 많은 사람들이 이렇게 생각할 것이라고 생각한다. 나는 이번 주에 필사적으로 썼다. 이런
Reference
이 문제에 관하여([Swift] 다양한 유형의 값을 동일하게 정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/worthmine/items/e1bde90f0fea60af3f9b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var arrayWithAnyType :[Any] = [/* You can insert here any initial values */]
var a :Array = ["String", "String2", "String3" ]
var b :Array = [4, 7, 8 ]
var c: [Any] = [a, b, 0]
c.shift() // -> ["String", "String2", "String3"]
class Foo {}
let aClass :Foo = Foo()
let anArray :Array = [0, 1, 2]
let anInt :Int = 0
// 普通にArray型であると明示的に示すと
var array :Array = ["String" ]
array.append(aClass) // Error "'Foo' is not convertible to 'String'"
array.append(anArray) // Error "'[Int]' is not convertible to 'String'"
array.append(anInt) // Error "'Int' is not convertible to 'String'"
// 上記全て怒られます
array.append("Another") // ->["String","Another"] //唯一怒られません
var arrayWithAnyType :[Any] = ["String"]
arrayWithAnyType.append(aClass) // -> ["String", Foo]
arrayWithAnyType.append(anArray) // -> ["String", Foo, [0, 1, 2]]
arrayWithAnyType.append(anInt) // -> ["String", Foo]
arrayWithAnyType.count // -> 4 // 3要素追加できてます
Reference
이 문제에 관하여([Swift] 다양한 유형의 값을 동일하게 정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/worthmine/items/e1bde90f0fea60af3f9b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)