↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

頭痛が減ったので共有です!

rebuild.fmを応援しています!

HOME > Enum

Enum

定数を列挙する方法です。phpのdefineの様なものです。例えばフルーツのEnumタイプにapple, orange,grape等。同じカテゴリーに 属する名称をリスト化して、アクセスしやすいメンテしやすいようにすることができます。


参考:SwiftのENUM
参考:Enums and Structs in Swift

まずやってみます

まずサラリーマンの階級をEnumにしてみます。


//平社員、部長、社長
enum SalarymanType {
  case hira
  case buchou
  case shacho
}


//横一行で宣言することもできます。caseの文字が省略できるので節約できます。
enum Salaryman { hira,buchou,shacho }

社長はサラリーマンというか経営者ですのでエラーかもしれませんが、、、、一例としてこのまま進ませていただきます。


以下のように利用できます


//meやyouのtypeがSalarymanType型であることが前提
var me.type = SalarymanType.hira
var me.type : SalarymanType = .hira

if (you.type == SalarymanType.shacho){
    print("お友達になってください");
}


Enumの中で関数も作成可能です


enum SalarymanType {
  case hira
  case buchou
  case shacho
}

func toString() -> String {
    switch self
    case .hira:
      return "平社員"
    case .buchou:
      return "部長"
    case .shacho:
      return "社長"
  }

print (me.type.toString());//平社員


Enum宣言時に値をいれて取り出すこともできます


enum SalarymanType {
  case hira ="平社員"
  case buchou="部長"
  case shacho="社長"
}

print(me.type.rawValue);//平社員


宣言時に複数の値を持たせることも、、、なんだか使い方が多岐にわたっています


enum Salaryman {
  case name(String,String)
  case salary(Short)
}
//利用方法
var name = User.Name("スイフト", "太郎")
switch name {
  case. name(let lastName, let firstName):
    let fullName = "\(lastName) \(firstName)"
    println(fullName) // スイフト 太郎
  case. salary(let salary):
    let salary = salary
}

まとめ

Enumに関数をいれたり変数いれて管理できるようですが、ここまでするのであればクラス化して管理した方がわかりやすいのかなと思っていました。 Enum=単純なリストとする方がメンテもダイレクトで簡単な気がします。(私のまだまだ未熟なプログラマ経験の上ですが、、)。Enumは名称さえ間違わなければ 拡張しやすくコーディングをわかりやすくできる方法ですので、適材適所で利用できればと思います。

↓こんな記事もありますよ!


2021-05-14 14:21:41

WatchOSのwatchconnectivityのFiletransferの落とし穴。と、避け方。

AppleWatch 実機だと成功するんだけど、シュミレーターだと失敗するという、、、 昔作成してた時は成功してたのになーと思って調べると、どうやら昔は成功してたみたい。watchOS6以降は...

2021-05-06 14:04:37

LINEのアニメーションスタンプ制作の落とし穴、、、失敗談

ゴールデンウィークにLINEスタンプを作成してみました。 作り切って申請も通したんですが、意図したアニメーションと違う、、、、 LINEクリエーターの画面だと、アニメーションのプレビュー...

2021-05-01 18:05:35

久しぶりのAdmobをobjective-cに実装。コンパイルエラーだらけ。バーミッション不具合でエミュレータにインスコできない。

忘れないようにメモ エミュレータにアプリをインストールする際にパーミッション系のエラーがでた時、また、iphone実機にインストールする際にも権限系のエラーが出る場合。 ターゲット→ex...
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!