Skip to content

Instantly share code, notes, and snippets.

@SatoTakeshiX
Created January 27, 2016 22:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SatoTakeshiX/5a6959387e19445e87d9 to your computer and use it in GitHub Desktop.
Save SatoTakeshiX/5a6959387e19445e87d9 to your computer and use it in GitHub Desktop.
SwiftのEnumサンプル
//: 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()
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