Created
January 27, 2016 22:27
-
-
Save SatoTakeshiX/5a6959387e19445e87d9 to your computer and use it in GitHub Desktop.
SwiftのEnumサンプル
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//: Playground - noun: a place where people can play | |
import UIKit | |
enum DeviceType { | |
case PC | |
case SmartPhone | |
case Tablet | |
} | |
let myDevice = DeviceType.SmartPhone | |
switch myDevice{ | |
case DeviceType.PC: | |
print("パソコン") | |
case DeviceType.SmartPhone: | |
print("スマートフォン") | |
case DeviceType.Tablet: | |
print("タブレット") | |
} | |
switch myDevice{ | |
case DeviceType.PC: | |
print("パソコン") | |
default : | |
print("パソコンじゃない") | |
} | |
/* | |
関連値 | |
スマートフォンのOSをまとめる列挙型 | |
iPhoneは製造番号(String型) | |
Androidは製造番号(String型)とおサイフケータイのチップ番号(Int型) | |
*/ | |
enum SmartOS{ | |
case iPhone(String) | |
case Android(String, Int) | |
} | |
let myPhone = SmartOS.iPhone("ABCDEF") | |
let yourPhone = SmartOS.Android("ABCDEF", 12345) | |
switch myPhone{ | |
case SmartOS.iPhone(let factoryID): | |
print("\(factoryID)") | |
break | |
case SmartOS.Android(let factoryID): | |
print("\(factoryID)") | |
break | |
} | |
switch yourPhone{ | |
case let SmartOS.iPhone(factoryID): | |
print("\(factoryID)") | |
break | |
case let SmartOS.Android(factoryID, FelicaID): | |
print("\(factoryID)と\(FelicaID)") | |
break | |
} | |
/* | |
Raw Value | |
実体値 | |
*/ | |
enum JapanCity : Int{ | |
case Tokyo = 0 | |
case Osaka | |
case Nagoya | |
case Hukuoka | |
case Sendai | |
} | |
let a = JapanCity.Osaka.rawValue //->1が返ってくる | |
enum UnitedstatesCity : String{ | |
case LasVegas | |
case WashingtonDC | |
case LosAngeles | |
case Boston | |
case Honolulu | |
case NewYorkCity | |
} | |
let acity = UnitedstatesCity.LasVegas | |
acity.rawValue //->LasVegasが返ってくる | |
//rawValueメソッドで初期化もできる | |
let bcity = UnitedstatesCity(rawValue: "NewYorkCity") | |
/* | |
Enumもメソッドをつけられる | |
*/ | |
enum OStype : Int{ | |
case Mac | |
case Linux | |
case Windows | |
mutating func isUnix() -> Bool{ | |
if(self.rawValue == 0 || self.rawValue == 1){ | |
return true | |
}else{ | |
return false | |
} | |
} | |
} | |
var sameMac = OStype.Mac | |
sameMac.isUnix() | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
beez勉強会のサンプルコード | |
https://www.facebook.com/events/1626773664250836/ | |
ライセンス | |
MIT |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment