[Swift] 다양한 유형의 값을 동일하게 정렬

2462 단어 Swift
"Swift형 Arry"에서 투덜거려도, 일본어로 해결할 기사를 찾지 못하니 발표할 때부터 스위프트를 접한 고급자라면 괜찮은데, 나 같은 iOS 개발 초보자가 갑자기 스위프트를 접한 경우는 위와 같은 제목으로 기사를 내는 게 좋을까?이렇게 나누고 싶어요.

해결책

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”]이다.

이것은 무엇에 쓰는 것입니까?


나는 많은 사람들이 이렇게 생각할 것이라고 생각한다. 나는 이번 주에 필사적으로 썼다. 이런

좋은 웹페이지 즐겨찾기