옵셔널(Optionals)
옵셔널은 어떤값이 부재인지를 체크합니다. 옵셔널에 대한 개념은 C나 Objective-c 에서는 없습니다.
옵셔널은 다음을 이야기 합니다.
- 그곳에는 값이 "있다, 그리고 그것은 x와 동일하다.
- 그곳에는 값이 전혀"없다"
다시말해서 변수를 쓰고 싶은데 어플 실행중에 상황에 따라 변수에 값이 없을 수도 있을때 그것을 대처하기 위해 씁니다.
선언은 다음과 같이 변수형뒤에 '?' 를 붙입니다. 값이 없을때는 nil 이 들어갑니다.
변수 선언하고 초기화 하지 않을 경우에는 자동으로 nil 이 들어갑니다.
1
2
3
4
5
6
|
var serverResponseCode : Int? = 404
// severResponseCode contains an actual Int value of 404
serverResponseCode = nil
//serverResponseCode now contains no value
var surveyAnswer: String?
| cs |
if문과 강제 언랩핑(If Statements and Forced Unwrapping)
옵셔널이 값을 가지고 있는지 찾기 위해서 if문을 사용할수 있습니다.
만약 옵셔널이 확실하게 값을 가진다는것을 알때 변수명 뒤에 '!' 를 붙여 줍니다. 이것을 강제 언랩핑이라고 합니다.
만약 강제언랩핑한 변수에 값이 없을경우 런타임 에러가 발생합니다.
1
2
3
|
if convertNumber != nil {
println("convertedNumber has an integer value of \(convertedNumber!).")
}
| cs |
배열(Arrays)
스위프트에서 배열은 특정 변수 타입만 저장 할 수 있습니다.. objective-c 의 NSArray 와 NSMutableArray 클래스와 다릅니다. 따라서 Int 형 타입 배열을 생성했다면 int 외에는 저장이 불가능합니다.
배열 타입 축약 문법 (Array Type Shorthand Syntax)
정확한 배열 타입을 정확하게 쓰려면 Array<SomeType> 형태로 해야합니다.
축약 형태인 [SomeType] 로 배열을 사용할 수 있습니다. 축약형태로 쓰는걸 권장합니다.
배열생성은 다음과 같이 합니다.
값 타입이 같다면 타입을 명시 하지 않아도 됩니다.
1
2
|
var shoppingList : [String] = ["Eggs","Milk"]
var shoppingList2 = ["coffee","water"]
| cs |
배열의 접근 및 수정 Accessing and Modifying an Array
한꺼번에 코드로 설명합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
//item 개수 확인
println("The shopping list contains \(shoppingList.count) item.")
//배열이 비었는지 확인
if shoppingList.isEmpty {
println("The shopping list is empty.")
} else {
println("The shopping list is not empty.")
}
//배열 마지막에 추가
shoppingList.append("Flour")
shoppingList += ["Baking Powder"]
shoppingList += ["Chocolate Spread", "Cheese", "Butter"]
//배열로 부터 값 찾기
var firstItem = shoppingList[0]
//배열에 값 넣기
shoppingList[0] = "six eggs"
// 법위를 지정해서 값을 넣을 수도 있습니다. 바꾸려는 범위가 실제 범위와 달라도 됩니다.
//4번 - 6번 index 의 값이 4,5번에 banans , apples 로 바뀝니다.
shoppingList[4...6] = ["Bananas", "Apples"]
//특정 index 값 지우기 그리고 그 값 return
let mapleSyrup = shoppingList.removeAtIndex(0)
//마지막 값 지우기 그리고 그 값 return
let apple = shoppingList.removeLast()
| cs |
배열에서 반복문 사용하기 Iterating Over an Array
for-in 반복문을 사용하면 배열 안에 모든 값에 접근 가능합니다.
인덱스가 필요하다면 enumerate 를 사용해서 배열을 돌릴 수 있습니다.
enumerate 함수는 각각의 값과 인덱스를 결합한 튜플을 반환합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
for item in shoppingList {
println(item)
}
// Milk
// Flour
// Baking Powder
// Bananas
for (index, value) in enumerate(shoppingList) {
println("Item \(index + 1): \(value)")
}
// Item 1: Milk
// Item 2: Flour
// Item 3: Baking Powder
// Item 4: Bananas
| cs |
배열의 생성과 초기화 Creating and Initializing an Array
초기값 할당 없이 특정 타입을 가진 빈 배열 만들기
1
|
var someInts = [Int]()
| cs |
다음엔 Dictionaries 부터 시작합니다. 최대한 필요한것만 적으려고 하는데
은근히 길어지네요
댓글 없음:
댓글 쓰기