Swift Optional


Optional

  • 값이 있을수도, 없을수도 있다の意味
  • enumgeneralの協力品
  • 外来変数の宣言方法は、外来者Optional(?)暗示的に外来者を抽出IUO, Implicitly Unwrapped Optional(!)
  • enum Optional<Wrapped> : ExpressibleByNilLiteral {
        case none
        case some(Wrapped)
    }
    
    let optionalValue: Optional<Int> = nil
    let optionalValue: Int? = nil //위와 똑같은 표현임
    ▼▼▼使用例
    let age: Int
    print(age)
    // 오류가 뜸. age의 값이 없는데 출력하려고 해서
    // 그래서 값을 넣어줘야하는데, 만약 값을 넣기 싫다면 옵셔널을 사용하면 됨
    
    let age: Int?
    print(age ?? "") 

    なぜ各キーの値は常にオプションですか?


    実行時に鍵に対応する値があるかどうかは判断できません.
    簡単に言えば、dickshernerはいつでもキーと値を変更できるので、コンパイル時にdicksherner内部のキーと値のペアがどのように変化するかは、dickshernerから値を取り出す際に、いつでも値がない準備をしておく必要があります.

    なぜこのような状況があるのですか?


    ・記録していなくても。「「」」「」有効符号化・「
  • セキュリティコード
  • アンインストールとして宣言された値を使用する場合は、次の操作を行います。


    セキュリティ重視のSWIFTでは、「外部」と宣言された値を使用するために値を抽出する必要があります.
    値の抽出方法はOptional BindingForce Unwrapping(강제추출)Optional Binding
  • nil検査とともに、安全抽出値
  • 使用
  • if letまたはguard let
  • ▼▼▼使用例
    var myName: String? = nil
        
    // if let
    if let name: String = myName {
        print(name)
    } else {
        print("myName == nil")
    }
        
    // guard let
    guard let myName = myName else { return }
    Force Unwrapping(強制抽出)
  • !貼り付け
  • 安全(例外処理)のため、強制抽出ではなく外部バインディングを使用することが望ましい.