Notice
Recent Posts
Recent Comments
Link
투케이2K
92. (swift/xcode) as 키워드 사용해 캐스팅 수행 및 as? 옵셔널 데이터 출력 , as! 데이터 강제 추출 실시 본문
Swift
92. (swift/xcode) as 키워드 사용해 캐스팅 수행 및 as? 옵셔널 데이터 출력 , as! 데이터 강제 추출 실시
투케이2K 2022. 8. 16. 08:44[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[소스 코드]
// MARK: - [테스트 함수 정의]
func testMain(){
print("")
print("===============================")
print("[ViewController >> testMain() :: 테스트 함수 수행]")
print("===============================")
print("")
/*
[요약 설명]
1. as : swift 에서 캐스팅을 수행합니다
2. as? : 캐스팅에서 옵셔널 값을 반환합니다 (if let 구문과 연계 가능)
3. as? 는 캐스팅을 성공하면 옵셔널 값을 반환하고 실패하면 nil 을 반환합니다
4. as! : 캐스팅에서 값을 강제 추출합니다 (런타임 에러 발생 가능)
5. as! 는 캐스팅에서 실패하면 런타임 에러가 발생할 수 있습니다
6. 옵셔널(Optional) 은 데이터가 있을 수도 있고, 없을 수도 있다는 의미입니다
7. as 를 사용해 캐스팅을 수행할 때 성공에 대한 확인이 있는 경우 as! 를 사용하며, 아닌 경우 as? 를 사용하는게 좋습니다
8. if let : Optional 값이 nil인지 확인하고 분기 처리 작업을 수행합니다
9. if let 구문에서 데이터가 Optional 인 경우는 if 문에서 벗김 처리 , nil 인 경우 else 구문에서 예외 처리를 수행합니다
10. guard let : 조건이 true 인 여부를 검사합니다
11. guard let 구문에서 조건이 true 인 경우 guard let 구문을 수행하고 , false 인 경우 else 구문에서 예외 처리를 수행합니다
12. guard let 은 else 즉, 조건이 false 일 때 블럭을 종료하는 함수가 필요합니다 (break, return ... )
*/
// [초기 변수 선언 실시]
var stringData = "TWOK"
var optionalData : String?
var nilData : String? = nil
var intData : Int = 10
// [데이터 삽입 실시]
optionalData = "투케이"
// [as? 를 사용해 캐스팅 수행 실시]
var stringCast_1 = stringData as? String
var optionalCast_1 = optionalData as? String
var nilCast_1 = nilData as? String
var intCast_1 = intData as? String
// [as? 결과 확인 로그 출력]
print("")
print("===============================")
print("[ViewController >> testMain() :: as? 캐스팅 로그 결과 출력 실시]")
print("[stringCast_1 :: \(stringCast_1)]")
print("[optionalCast_1 :: \(optionalCast_1)]")
print("[nilCast_1 :: \(nilCast_1)]")
print("[intCast_1 :: \(intCast_1)]")
print("===============================")
print("")
// [as! 를 사용해 캐스팅 수행 실시]
var stringCast_2 = stringData as! String
var optionalCast_2 = optionalData as! String
// var nilCast_2 = nilData as! String // MARK: [nil 캐스팅 런타임 에러 발생]
// var intCast_2 = intData as! String // MARK: [형변환 캐스팅 런타임 에러 발생]
// [as! 결과 확인 로그 출력 실시]
print("")
print("===============================")
print("[ViewController >> testMain() :: as! 캐스팅 로그 결과 출력 실시]")
print("[stringCast_2 :: \(stringCast_2)]")
print("[optionalCast_2 :: \(optionalCast_2)]")
print("===============================")
print("")
}
[결과 출력]
반응형
'Swift' 카테고리의 다른 글
94. (swift/xcode) func 함수 매개 변수에 struct 구조에 삽입 실시 (0) | 2022.08.16 |
---|---|
93. (swift/xcode) self 키워드 클래스 전역 변수 및 메소드 지정 실시 (0) | 2022.08.16 |
91. (swift/xcode) if let , guard let 사용해 Optional 데이터 확인 및 true , false 조건 체크 실시 (0) | 2022.08.16 |
90. (swift/xcode) 클로저 (Closure) 호출 및 리턴 결과 확인 실시 (0) | 2022.08.15 |
89. (swift/xcode) 클로저 (Closure) 사용해 func 함수 동작 및 내부 로직 처리 간략 표현 실시 (0) | 2022.08.15 |
Comments