스위프트 배열


Swift 배열은 순서가 지정된 목록을 사용하여 동일한 유형의 여러 값을 저장합니다. 동일한 값이 배열의 다른 위치에 여러 번 나타날 수 있습니다.

Swift 배열은 요소 유형을 강제로 감지합니다. 유형이 다른 경우 오류가 보고됩니다. Swift 배열은 Array<Element>와 같은 형식을 따라야 합니다. 여기서 Element는 여기에 존재할 수 있는 유일한 데이터 유형입니다. 정렬.

배열을 만들어 변수에 할당하면 생성된 컬렉션을 수정할 수 있습니다. 즉, 배열을 만든 후 추가, 삭제 또는 수정을 통해 배열의 항목을 변경할 수 있습니다. 배열을 상수에 할당하면 배열을 변경할 수 없으며 배열의 크기나 내용도 수정할 수 없습니다.


Create Array

구성 구문을 사용하여 특정 데이터 유형의 빈 배열을 만들 수 있습니다.

var someArray = [SomeType]()

다음은 초기화된 크기의 배열을 만드는 구문입니다.

var someArray = [SomeType](count: NumbeOfElements, repeatedValue: InitialValue)

다음 예에서는 Int 유형을 만듭니다. size 초기 값이 3이고 초기 값이 0인 빈 배열:

var someInts = [Int](count: 3, repeatedValue: 0)

다음 예에서는 세 가지 요소가 있는 배열을 만듭니다.

var someInts:[Int] = [10, 20, 30]

배열 액세스

다음 예제에 따라 배열 요소에 액세스할 수 있습니다. 배열의 인덱스 구문은 다음과 같습니다:

var someVar = someArray[index]

index 인덱스는 0부터 시작하고 인덱스 0은 첫 번째 요소에 해당하고 인덱스 1은 두 번째 요소에 해당합니다.

다음 예제를 통해 배열을 생성, 초기화 및 액세스하는 방법을 배울 수 있습니다.

import Cocoa

var someInts = [Int](count: 3, repeatedValue: 10)

var someVar = someInts[0]

print( "第一个元素的值 \(someVar)" )
print( "第二个元素的值 \(someInts[1])" )
print( "第三个元素的值 \(someInts[2])" )

위 프로그램 실행의 출력 결과는 다음과 같습니다.

第一个元素的值 10
第二个元素的值 10
第三个元素的值 10

배열 수정

append() 메서드를 사용할 수 있습니다. 할당 연산자 += 배열의 끝에 요소를 추가합니다. 아래와 같이 배열을 초기화하고 요소를 추가합니다.

import Cocoa

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

var someVar = someInts[0]

print( "第一个元素的值 \(someVar)" )
print( "第二个元素的值 \(someInts[1])" )
print( "第三个元素的值 \(someInts[2])" )

위 프로그램 실행의 출력은 다음과 같습니다.

第一个元素的值 20
第二个元素的值 30
第三个元素的值 40

값을 수정할 수도 있습니다. 인덱스별 배열 요소:

import Cocoa

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

// 修改最后一个元素
someInts[2] = 50

var someVar = someInts[0]

print( "第一个元素的值 \(someVar)" )
print( "第二个元素的值 \(someInts[1])" )
print( "第三个元素的值 \(someInts[2])" )

위 프로그램 실행의 출력 결과는 다음과 같습니다.

第一个元素的值 20
第二个元素的值 30
第三个元素的值 50

배열 탐색

for-in 루프를 사용하여 모든 배열의 데이터 항목을 탐색할 수 있습니다.

import Cocoa

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs.append("php")
someStrs += ["Google"]

for item in someStrs {
   print(item)
}

위 프로그램 실행의 출력 결과는 다음과 같습니다.

Apple
Amazon
php
Google

각 데이터 항목의 값과 인덱스 값이 동시에 필요한 경우 배열 순회를 위해 String의 enumerate() 메서드를 사용할 수 있습니다. 예는 다음과 같습니다.

import Cocoa

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs.append("php")
someStrs += ["Google"]

for (index, item) in someStrs.enumerate() {
   print("在 index = \(index) 位置上的值为 \(item)")
}

위 프로그램 실행의 출력 결과는 다음과 같습니다.

在 index = 0 位置上的值为 Apple
在 index = 1 位置上的值为 Amazon
在 index = 2 位置上的值为 php
在 index = 3 位置上的值为 Google

Merge arrays

더하기 연산자(+)를 사용하여 동일한 유형의 두 기존 배열을 병합할 수 있습니다. 새 배열의 데이터 유형은 두 배열의 데이터 유형에서 추론됩니다.

import Cocoa

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)

var intsC = intsA + intsB

for item in intsC {
   print(item)
}

위 프로그램 실행의 출력은 다음과 같습니다.

2
2
1
1
1

count attribute

count 속성을 사용하여 배열 수를 계산할 수 있습니다. 배열 요소:

import Cocoa

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)

var intsC = intsA + intsB

print("intsA 元素个数为 \(intsA.count)")
print("intsB 元素个数为 \(intsB.count)")
print("intsC 元素个数为 \(intsC.count)")

위 프로그램 실행의 출력 결과는 다음과 같습니다.

intsA 元素个数为 2
intsB 元素个数为 3
intsC 元素个数为 5

isEmpty attribute

읽기 전용 속성 isEmpty를 통해 배열이 비어 있는지 여부를 판단하고 부울 값을 반환할 수 있습니다.

import Cocoa

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)
var intsC = [Int]()

print("intsA.isEmpty = \(intsA.isEmpty)")
print("intsB.isEmpty = \(intsB.isEmpty)")
print("intsC.isEmpty = \(intsC.isEmpty)")

위 프로그램 실행의 출력 결과는 다음과 같습니다.

intsA.isEmpty = false
intsB.isEmpty = false
intsC.isEmpty = true