Swift에서 배열 [String] 슬라이싱 반환 유형이 [String]이 아닌 것 같습니다.
저는 일련의 줄을 자르고 그것을 다음으로 설정하고 있습니다.[String]변수입니다. 그러나 형식 검사기에서 불만이 있습니다.컴파일러 버그일 가능성이 있습니까?
var tags = ["this", "is", "cool"]
tags[1..<3]
var someTags: [String] = tags[1..<3]
범위를 사용하여 배열을 구독하면 배열이 반환되지 않고 조각이 반환됩니다.그러나 해당 조각으로 배열을 만들 수 있습니다.
var tags = ["this", "is", "cool"]
tags[1..<3]
var someTags: Slice<String> = tags[1..<3]
var someTagsArray: [String] = Array(someTags)
var tags = ["this", "is", "cool"]
var someTags: [String] = Array(tags[1..<3])
println("someTags: \(someTags)") // "someTags: [is, cool]"
이 작업을 통해 슬라이스의 새 배열을 가져올 수도 있습니다.
var tags = ["this", "is", "cool"]
var someTags = [String]()
someTags += tags[1..<3]
println(someTags[0]) //prints ["is", "cool"]
이를 위한 또 다른 방법은 변수 선언 결합입니다.let someTags: [String]그리고, 그것은 변화할 것입니다.ArraySlice<String>로.[String]:
let tags = ["this", "is", "cool"]
let someTags: [String] = tags[1..<3].map { $0 } // ["is", "cool"]
변환을 위한 또 다른 편리한 방법ArraySlice로.Array다음과 같습니다.
var tags = ["this", "is", "cool"] var someTags: [String] = tags[1..<3] + []
나중에 이것을 보는 다른 개발자(또는 자신)가 그것의 목적을 이해하지 못할 수도 있기 때문에 완벽하지 않습니다.좋은 소식은 만약 그 개발자(아마도 당신)가 그것을 제거한다면.+ []그들은 즉시 컴파일러 오류에 직면할 것이고, 그것은 바라건대 그것의 목적을 명확하게 할 것입니다.
조각을 만들 때 배열로 캐스팅하기만 하면 됩니다.중간 변수를 사용하지 않고 배열을 배열로 유지합니다.이것은 코드화 가능한 유형을 사용할 때 유용합니다.
var tags = ["this", "is", "cool"]
tags = Array(tags[1..<3])
언급URL : https://stackoverflow.com/questions/25714673/in-swift-array-string-slicing-return-type-doesnt-seem-to-be-string
'programing' 카테고리의 다른 글
| 다운로드한 글꼴을 디코딩하지 못했습니다. OTS 구문 분석 오류: 잘못된 버전 태그 + 레일 4 (0) | 2023.08.16 |
|---|---|
| SQL Server 2016, 잘못된 개체 이름 'STRING_SPLIT' (0) | 2023.08.16 |
| Angular 구성 요소 템플릿에 스크립트 태그 추가 (0) | 2023.08.16 |
| JQuery를 통한 노란색 페이드 효과 (0) | 2023.08.16 |
| 간단한 조인으로 MySQL/MariaDB COUNT(*) 행 속도가 매우 느림 (0) | 2023.08.16 |
