8.Swiftの列挙タイプ

1673 ワード

列挙タイプの紹介
  • 概念紹介
  • は、コード内でこれらの値を安全な方法で使用できるように、汎用タイプの関連する値のセットを定義しています.
  • C/OC言語で指定された相関名を整数値のセットとして列挙する
  • Swiftの列挙はより柔軟であり、列挙メンバーごとに値を与える必要はない.文字列、文字、または整数値または浮動小数点値
  • の値を指定することもできます.
  • 列挙タイプの構文
  • enumキーワードを使用し、それらの定義全体を括弧のペア内に
  • 配置する.
    enum SomeEnumeration {
      // enumeration definition goes here
    }
    

    列挙タイプの定義
  • 以下はコンパスの4方向の一例である
  • caseキーワードは、新しい行のメンバー値が
  • に定義されることを示す.
  • CやObjective-Cのように、Swiftの列挙メンバーは作成時にデフォルトの整数値
  • が付与されない.
  • 上記のCompassPointsの例では、North,South,East,Westは暗黙的ではなく0,1,2,3
  • に等しい
    enum CompassPoint {
      case North
      case South
      case East
      case West
    }
    
  • 定義方法2:複数のメンバー値が同じ行に表示される
  • enum Planet {
      case Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
    }
    

    列挙タイプに値を割り当てる
  • 列挙タイプ付与値は、文字列/文字/整数/浮動小数点型であってもよい
  • 列挙タイプに値が付与されている場合は、列挙タイプの後に具体的なタイプ
  • を明確に説明する必要があることに注意する.
    // 1.       
    enum CompassPoint : Int {
      case North = 1
      case South = 2
      case East = 3
      case West = 4
    }
    
    enum Planet {
      case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
    }
    
    
    // 2.       
    let p = Planet(rawValue: 3)
    
    if let p = p {
        switch p {
        case .Mercury:
            print("Mercury")
        case .Venus:
            print("Venus")
        case .Earth:
            print("Mercury")
        case .Mars:
            print("Mars")
        case .Jupiter:
            print("Jupiter")
        case .Saturn:
            print("Saturn")
        case .Uranus:
            print("Uranus")
        case .Neptune:
            print("Neptune")
        }
    }