14일차: SwiftUI의 100일 - 선택 사항

옵션, nil 병합 및 체크포인트 9



https://www.hackingwithswift.com/100/swiftui/14

옵션



선택사항은 값이 없는 경우를 처리합니다. 옵션은 "값이 있습니다"또는 "값이 전혀 없습니다( nil )"라고 말합니다.

var username: String? = nil
var password: String?

if let unwrappedName = username {
    print("We got a user: \(unwrappedName)")
} else {
    print("The optional was empty.")
}


만약 let과 guard let


if let는 선택적 값을 풀고 값이 있는지 확인한 다음 일부 코드를 실행합니다. 반면에 guard let는 옵션에 값이 없는 경우 일부 코드를 실행합니다.

var myVar: Int? = 3

if let unwrapped = myVar {
    print("Run if myVar has a value inside")
}

guard let unwrapped = myVar else {
    print("Run if myVar doesn't have a value inside")
}


함수에서 guard를 사용하는 경우 검사에 실패하면 return를 사용해야 합니다.

func printSquare(of number: Int?) {
    guard let number = number else {
        print("Missing input")
        return
    }

    print("\(number) x \(number) is \(number * number)")
}

printSquare(of: nil)
printSquare(of: 2)


무 합체



Nil 병합을 사용하면 옵셔널을 언래핑하고 옵셔널이 비어 있는 경우 기본값을 제공할 수 있습니다.

let captains = [
    "Enterprise": "Picard",
    "Voyager": "Janeway",
    "Defiant": "Sisko"
]

let new = captains["Serenity"] ?? "N/A"


옵셔널 체이닝



옵셔널 체이닝은 옵셔널 안에서 옵셔널을 읽기 위한 단순화된 구문입니다. 이는 선택 사항인 경우 연결된 속성 액세스를 수행하는 좋은 방법입니다.

let names = ["Arya", "Bran", "Robb", "Sansa"]

let chosen = names.randomElement()?.uppercased() ?? "No one"
print("Next in line: \(chosen)")


체크포인트 9



선택적 정수 배열을 받아들이고 무작위로 하나를 반환하는 함수를 작성하십시오. 배열이 없거나 비어 있으면 1에서 100 사이의 난수를 반환합니다.

해결책

좋은 웹페이지 즐겨찾기