- Creating an Array
* init()
type T의 비어 있는 배열을 생성
init()
예)
var emptyArray = Array<int>()
위 구분은 아래 구문과 동일하다.
var equivalentEmptyArray = [Int]()
* init(count:, repeatedValue:)
주어진 숫자(count)만큼의 같은 값(repeatedValue)으로 초기화된 요소를 생성한다.
init(count: Int, repeatedValue: T)
예)
var numericArray = Array(count: 3, repeatedValue: 42)
// numericArray is [42, 42, 42]
초기화 : numericArray = []
var stringArray = Array(count: 2, repeatedValue: "Hello")
// stringArray is ["Hello", "Hello"]
- Accessing Array Elements
* subscript(Int) -> T { get set }
대괄호를 사용해서 배열에 존재하는 요소를 가져오거나 설정한다.
예)
let subscriptableArray = ["zero", "one", "two", "three"]
let zero = subscriptableArray[0]
// zero is "zero"
let three = subscriptableArray[3]
// three is "three"
subscriptableArray[0] = "nothing"
subscriptableArray[3] = "three items"
배열의 요소를 추가하기 위해서 다음과 같이 사용하면 오류가 발생한다.
subscriptableArray[4] = "new item"
// Fatal error: Array index out of range
배열의 요소를 추가하기 위해서는 append() 함수나 += 언산자를 사용해야 한다.
* subscript(Range<Int>) -> Slice<T>
대괄호안에 정의된 정수를 사용해서 해당 요소를 가져오거나 설정한다.
subscript(subRange: Range<Int>) -> Slice<T> { get { } set { } }
예)
배열에서 하나 또는 그 이상의 요소에 접근하기 위해서는 배열 첨자를 사용하면 된다.
var subscriptableArray = ["zero", "one", "two", "three"]
let subRange = subscriptableArray[1...3]
// subRange = ["one", "two", "three"]
배열 첨자를 사용해서 해당 배열의 값을 변경할 수 있다.
subscriptableArray[1...2] = ["oneone", "twotwo"]
// subscriptableArray is now ["zero", "oneone", "twotwo", "three"]
배열 첨자를 사용해서 배열의 값을 초기화 할 수 있다.
subscriptableArray[1...2] = []
// subscriptableArray is now ["zero", "three"]
다음과 같이 사용하면 오류가 발생한다.
subscriptableArray[4...5] = ["four", "five"]
// Fatal error: Array replace: subRange is inside-out
대신에 append()함수나 += 연사자를 사용하면 된다.
* isEmpty
배열 항목이 비어 있는지를 검사한다.
isEmpty의 값은 boolean형태이며, 배열이 비어 있으면 true, 비어 있지 않으면 false를 반환한다.
- Adding and Removing Elements
* append()
배열 마지막 요소에 새로운 요소를 추가한다.
mutating func append(newElement: T)
예)
var array = [0, 1]
array.append(2)
// array is [0, 1, 2]
array.append(3)
// array is [0, 1, 2, 3]
변수(var)로 선언된 배열에서만 사용 가능하고 상수(let)로 선언된 배열에서는 사용할 수 없다.
let anotherArray = [0, 1]
anotherArray.append(2)
// Error: immutable value of type 'Array<Int>' only has mutating members named 'append'
* insert(_ :, atIndex:)
주어진 인덱스 위치에 요소를 추가한다.
mutating func insert(newElement: T, atIndex: Int)
예)
var array = [1, 2, 3]
array.insert(0, atIndex: 0)
// array is [0, 1, 2, 3]
인덱스는 배열의 요소 수보다 같거나 작아야 한다. 다음과 같이 사용하면 오류가 발생한다.
array.insert(6, atIndex: 6)
// Fatal error: Array replace: subRange is inside-out
변수(var)로 선언된 배열에서만 사용 가능하고 상수(let)로 선언된 배열에서는 사용할 수 없다.
let array = [1, 2, 3]
array.insert(0, atIndex: 0)
// Error: immutable value of type 'Array<Int>' only has mutating members named 'insert'
* removeAtIndex() -> T
주어진 인덱스의 요소를 제거한 배열을 반환한다.
mutating func removeAtIndex(index: Int) -> T
예)
var array = [0, 1, 2, 3]
let removed = array.removeAtIndex(0)
// array is [1, 2, 3]
// removed is 0
인덱스는 배열의 요소 수보다 작아야 한다. 다음과 같이 사용하면 오류가 발생한다.
array.removeAtIndex(5)
// Fatal error: Array index out of range
변수(var)로 선언된 배열에서만 사용가능하고 상수(let)로 선언된 배열에서는 사용할 수 없다.
let array = [0, 1, 2]
array.removeAtIndex(0)
// Error: immutable value of type 'Array<Int>' only has mutating members named 'removeAtIndex'
* removeLast() -> T
배열의 마지막 요소를 제거한다.
mutating func removeLast() -> T
예)
var array = [1, 2, 3]
let removed = array.removeLast()
// array is [1, 2]
// removed is 3
위 매서드를 호출하기 전에 배열의 요소가 적어도 하나 이상은 있어야 한다. 그렇지 않으면 다음과
같은 오류가 발생한다.
var emptyArray = Int[]()
let tryToRemove = emptyArray.removeLast()
// Fatal error: can't removeLast from an empty Array
변수(var)로 선언된 배열에서만 사용가능하고 상수(let)로 선언된 배열에서는 사용할 수 없다.
let array = [1, 2]
array.removeLast()
// Error: immutable value of type 'Array<Int>' only has mutating members named 'removeLast'
* removeAll(keepCapacity: = false)
컬렉션에서 모든 요소를 제거하고 storage buffer를 지운다..
mutating func removeAll(keepCapacity: Bool = false)
예)
var array = [0, 1, 2, 3]
array.removeAll()
let count = array.count
// count is 0
변수(var)로 선언된 배열에서만 사용가능하고 상수(let)로 선언된 배열에서는 사용할 수 없다.
let array = [1, 2]
array..removeLast()
// Error: immutable value of type 'Array<Int>' only has mutating members named 'removeAll'
'Smart Device > Swift' 카테고리의 다른 글
Swift Dictionary (0) | 2014.06.12 |
---|---|
Swift Array #2 (0) | 2014.06.11 |
Swift String (0) | 2014.06.11 |
Swift Subscript (0) | 2014.06.11 |
Swift 연산자 (0) | 2014.06.10 |