Swift_Tuple & Optional
1. Tuple
-
여러 값을 하나의 항목으로 임시적 그루핑하는 방법.
-
서로 다른 타입의 값들이 튜플에 저장될 수 있으며, 모두 동일한 타입의 값이어야 한다는 제약도 없다.
let myTuple = (10, 432.432, "this")
//튜플 선언
let myTuple1 = (count : 10, length : 432.432, msg : "hello")
//튜플을 생성하는 시점에서 각각의 값을 변수에 할당
let (myInt, myDouble, myString) = myTuple
//하나의 구문으로 튜플의 모든 값을 추출하여 변수 또는 상수에 할당
var (myInt, _, myString) = myTuple
//부동소수점 수는 무시하고 정수와 문자열 값만 튜플에서 추출하여 변수에 할당
2. Optional Type
- 변수 또는 상수 값이 할당되지 않은 상황을 처리하기 위한 접근 방식
var index: Int?
-
어떤 값도 할당되지 않은 옵셔널은 실제로 nil 값을 가진다.
Swift에서는 null 대신 nil을 사용. 객체 지향 언어인 Objective-c 에서는 null과 nil이 모두 존재했으나 Swift는 객체 지향 언어가 아니라 null과 nill의 구분이 사라짐
Objective-c
-> nil : 클래스 객체를 참조하는데 사용
-> null : 그 밖의 다른 포인터 자료형Swift
-> 오직 nil만 존재 -
만약 옵셔널에 값이 할당되었다면 해당 값이 옵셔널 내에서 래핑되었다라고 표현한다.
-
옵셔널 안에 래핑된 값을 사용할 때는 강제 언래핑이라는 개념을 이용한다. 래핑된 값을 옵셔널 데이터 타입에서 옵셔널 이름 뒤에 ! 느낌표를 두어 추출되게 한다.
var index: Int?
index = 3
var alphabet = ["A", "B", "C", "D", "E"]
if index != nil {
print(alphabet[index!])
} else {
print("index does not contain a value")
}
//알파벳을 나타내는 문자열 배열의 인덱스를 담는 옵셔널 변수를 사용
- 강제 언래핑 대신, 옵셔널로 할당된 값은 옵셔널 바인딩을 이용하여 임시 변수나 상수에 할당 가능
if let constantname = optionalName {
}
if var variableName = optionalName {
}
- 강제적으로 언래핑되도록 옵셔널을 선언 : 해당 방식으로 옵셔널을 선언하면 강제 언래핑이나 옵셔널 바인딩을 하지 않아도 값에 접근 가능
var index: Int!
//옵셔널 강제적 언래핑
index = 3
var alphabet = ["A", "B", "C", "D", "E"]
if index != nil {
print(alphabet[index!])
} else {
print("index does not contain a value")
}
/*이제 index 옵셔널 변수는 강제적으로 언래핑되도록 선언되어,
print 동작 시 배열의 인덱스로 사용될 때 값을 언래핑할 필요가 없다.*/
- 스위프트에서 옵셔널이 아닌 변수 또는 상수에는 nil을 할당할 수 없다.
(Nullable해야 가능)
Author And Source
이 문제에 관하여(Swift_Tuple & Optional), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dltmddyd321/SwiftTuple-Optional저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)