Swiftでenumに引数を持たせる

Swiftのenumは引数を持つことができ、またswitch-caseを利用する際に展開することが可能です。

enum Hoge
  case Fuga(Int)
  case FugaFuga(myId: Int)
func check(arg0: Hoge) {
  switch(arg0) {
  case let .Fuga(myarg):
    println("Fuga's arg : \(myarg)")
  case let .FugaFuga(myId):
    println("FugaFuga's arg 'myId' : \(myId)")
  }
}

func test() {
  check(Hoge.Fuga(1))  // -> Fuga's arg: 1
  check(Hoge.FugaFuga(myId: 2))  // -> FugaFuga's arg 'myId' : 2
}

引数に名前を付けると接頭辞が必要になりますが、名前を付けない場合は接頭辞が必要ありません。