Udemy - Optional

박중권·2024년 6월 8일
0

Info.

목록 보기
13/13

이번 챕터에서는 조금이나마 옵셔널에 대해 배우고 활용을 할 수 있었다.

예시:


struct CalculatorBrain {
	var bmi: Float?
    
    func getBMIValue() -> String {
    
    let bmiTo1DecimalPlace = String(format: "%.1f, bmi)
    return bmiTo1DecimalPlace
    
    }
}

// 이러한 코드가 있다면, 일단 bmi는 옵셔널이 되어 있기 때문에, 함수 안에 있는 bmi 언래핑 처리가 필요할 수도 있다.

1. 
struct CalculatorBrain {
	var bmi: Float?
    
    func getBMIValue() -> String {
    	if bmi != nil { // if else을 활용하여, 만약에 bmi가 nil이 아닐시
    		let bmiTo1DecimalPlace = String(format: "%.1f, bmi!) //!로 강제 해제
   	 		return bmiTo1DecimalPlace
    	} else { // nil일 시 아래 코드 실행
    	return = "0.0"
    }
}

2.
struct CalculatorBrain {
	var bmi: Float?
    
    func getBMIValue() -> String {
    
    if let safeBMI = bmi { //if let을 활용하여, bmi에 값이 있다면 safeBMI(Float)를 사용
    	let bmiTo1DecimalPlace = String(format: "%.1f, safeBMI) //언래핑이 필요 없이 safeBMI 사용
    	return bmiTo1DecimalPlace
    } else { // nil일 시 아래 코드 실행
      return = "0.0"
    }
}

3.
struct CalculatorBrain {
	var bmi: Float?
    
    func getBMIValue() -> String {
    
    // nil coalescing 활용, bmi에 값이 없다면 0.0으로 설정
    let bmiTo1DecimalPlace = String(format: "%.1f, bmi ?? 0.0) 
    return bmiTo1DecimalPlace
    }
}

이러한 방식으로 옵셔널을 활용했을 때, 언래핑을 하는 여러가지 방식을 배웠다.
아직은 옵셔널을 사용하는 것 조차 힘들지만, 앞으로의 챕터에서 더 활용해보면서 익히기로 하자.

끝!

profile
Hello World!

0개의 댓글