일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 |
Tags
- 카카오 2021
- roboflow
- SwiftUI
- 카카오 2018
- Python
- 카카오 2020
- ios 개발 시작
- swift 시작
- 스위프트
- 문제
- swift
- 데이터셋 만들기
- 프로그래머스 답
- 카카오
- 프로그래머스
- 카카오 2019
- fast.ai
- supervisely
- 이미지학습
- coco 데이터셋
- 최솟값 만들기
- 날씨 앱
- kakao 2018
- Siwft
- c언어
- swift 배열
- 머신러닝
- 파이썬
- Kakao
- 소수
Archives
- Today
- Total
잡초의 일지
[Swift] Optional 옵셔널 본문
728x90
반응형
SMALL
이전에 했던 optional에 대한 포스팅.
https://alicecodealice.tistory.com/7
옵셔널
옵셔널은 값이 있을수도 있고 없을수도 있음(nil)을 표현한 형태이다.
코드
import UIKit
var carName: String? = "뚜벅이"
carName = nil
carName = "람보르기니포르쉐마세라티"
옵셔널 고급기능
1. 강제 언래핑 (Forced unwrapping)
// Forced unwrapping >> 강제로 박스 열기
print(carName!)
2. 옵셔널 바인딩 (Optional binding) - if let
// Optional binding (if let 사용) >> 부드럽게 박스 열기 - 1
if let unwrappedCarName = carName {
print(unwrappedCarName)
}else{
print("car Name 없다")
}
//parsing 해서 casting 한 결과가 옵셔널일 수 있다.
func printParsedInt(from: String){
if let parsedInt = Int(from){ //Cyclomatic complexity (복잡도)
print(parsedInt)
}else{
print("Int로 컨버팅 안된다.")
}
}
printParsedInt(from: "100")
printParsedInt(from: "hello~~!")
3. 옵셔널 바인딩 (Optional binding) - guard
// Optional binding (guard 사용) >> 부드럽게 박스 열기 - 2
func printParsedInt(from: String){
guard let parsedInt = Int(from) else { //복잡도 줄일 수 있는 방법. guard 사용. guard조건 만족안하면 아래 실행.
print("Int로 컨버팅 안된다.")
return
}
print(parsedInt)
}
printParsedInt(from: "100")
printParsedInt(from: "hello~~!")
4. Nil coalescing
// Nil coalescing >> 박스를 열었더니, 값이 없으면 디폴트 값을 준다.
carName = "나의자동차" // --> carName에 "나의자동차"라는 값을 주면
// nil이 아니므로 "나의자동차" 출력됌.
let myCarName:String = carName ?? "뚜벅이와 대중교통" //박스 열어서 값이 없으면 디폴트 값을 준다.
코드 연습
let favoriteFood: String? = "탄산수"
if let food = favoriteFood {
print(food)
}else{
print("좋아하는 음식이 없어")
}
let nickname:String? = "잡초"
//let nickname:String? = nil
func pirntNickname(name:String?){
guard let nickName = name else {
print("별명이 없네")
return
}
print("별명은 \(nickName)")
}
pirntNickname(name: nickname)
728x90
반응형
LIST
'[코딩] 배우는것 > Swift' 카테고리의 다른 글
[Swift] Collection : Dictionary (0) | 2020.07.09 |
---|---|
[Swift] Collection : Array (0) | 2020.07.09 |
[Swift] function 함수 만들기 (0) | 2020.07.08 |
[Swift] Tuple 튜플 사용 (0) | 2020.07.07 |
[Swift] where의 사용 (0) | 2020.07.07 |
Comments