Swift3.0 - Array
기본적
list1 = [" ","2","3","4"]
let list2:[String] = [" ","2","3","4"]
let list3:[Any] = [" ","2","3",3,UILabel()]
let list4:NSArray = [" ","2","3","4",UILabel()]
let list5:NSMutableArray = ["1","2","3","4"]
list2.removeAll() // var
list2 = [] // var
list5.removeAllObjects() // var let
list5 = [] // var
shoppingList[4...6] = ["Bananas", "Apples"] // 4...6
shoppingList.insert("Maple Syrup", at: 0)
let mapleSyrup = shoppingList.remove(at: 0)
let apples = shoppingList.removeLast()
for item in shoppingList {
print(item)
}
for (index, value) in shoppingList.enumerated() {
print("Item \\(index + 1): \\(value)")
}
고급
func map(_ transform: (Element) throws -> T) rethrows -> [T]
설명: T는 일반적인transform: 패키지 함수 매개 변수와 반환 값이 있는 패키지 함수 [T] 함수를 보내야 합니다. [T] 함수는 T 형식의 그룹에 되돌려줍니다.
응용: 우리는 한 그룹의 데이터 중 20보다 큰 숫자에 3을 곱하는 수요가 있다.
//1.
var numbers = [21, 19, 7, 12]
//2.
var closure = {(number:Int) -> Int in
var result = number
if number > 20 {
result *= 3
}
return result
}
//3. map
print(numbers.map(closure))
swift는 유형 추정 기능이 있기 때문에 우리는 이렇게 쓸 수 있다
let mappedNumbers = numbers.map({ number -> Int in
if number > 20{
return 3 * number
}
return number
})
만약 논리적 판단이 없다면 모든 값을 통일적으로 3으로 곱하면 우리는 심지어 이렇게 쓸 수 있다
let mappedNumbers = numbers.map({ number -> Int in
return number*3
})
좀 더 깔끔하게.
let mappedNumbers = numbers.map({ number in
number*3
})
만약 그룹의 값을 모두 0으로 바꾸려면 아래와 같이
let mappedNumbers = numbers.map({_ in
return 0
})
포워드 테스트 한번...in과 맵의 속도 테스트 1: 수조numbers의 숫자가 0으로 바뀐다
for ... in
var numbers = Array(repeating: 3, count: 1000000)
var date1 = NSDate()
for i in 0..
두 번의 테스트 데이터 실행
0.0242440104484558 0.0248509645462036
map
var numbers = Array(repeating: 3, count: 1000000)
var date1 = NSDate()
var newNumbers = numbers.map({_ in
return 0
})
print(NSDate().timeIntervalSince(date1 as Date))
두 번 실행 결과
0.219065964221954 0.201902985572815
제가 작은 데이터를 테스트해서 100개의 숫자에 대한 그룹 설정 값을 for...in
0.000165998935699463
map
0.0013270378112793
결론: 실행 속도에서 for...비교적 빠르다
문제1:맵의 장점은 어디에 있습니까?
sort 정렬
public func sorted(by areInIncreasingOrder: (Element, Element) -> Bool) -> [Element]
매개변수:
areIncreasingOrder 매개 변수 두 개
우리는 1만 개의 수조를 정렬하여 for in 순환 정렬 시간을 측정한다
//거품 정렬법
ar date1 = NSDate()
numbers.sort(by: {$0 > $1})
var swap:Int
for i in 0..
실행 결과
3.54646998643875 3.48700600862503
sort를 사용하여 100만 개의 숫자를 정렬하다
var numbers = Array(repeating: 3, count: 1000000)
for i in 0.. $1})
print(NSDate().timeIntervalSince(date1 as Date))
실행 결과
2.71596896648407 2.66568303108215
결론:
정렬을 사용하면 애플이 제공하는 방법을 추천합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.