読者です 読者をやめる 読者になる 読者になる

山下寛人オフィシャルブログ

オイシックス株式会社 執行役員 システム本部長 山下寛人の公式ブログです。

Swiftのtuple

ブログ
Swiftにtupleというものがあるようなので調べてみました。

Appleのリファレンスのtypeのところにありました。関数で複数の値を返すときに使うものだそうです。Javaではたまにこういうのやりたいときありましたができませんでした。Mapに入れて返すとかやや残念です。Objective-Cもできないようです。

さらにすごいのはラベルをつけておくとそのままラベルを指定して返り値にアクセスできるところです。Appleのリファレンスからコードを引用。
func minMax(array: [Int]) -> (min: Int, max: Int) {
  var currentMin = array[0]
  var currentMax = array[0]
  for value in array[1..<array.count] {
    if value < currentMin {
      currentMin = value
    } else if value > currentMax {
      currentMax = value 
    }
  } 
  return (currentMin, currentMax)
}

let bounds = minMax([8, -6, 2, 109, 3, 71]) println("min is \(bounds.min) and max is \(bounds.max)") // prints "min is -6 and max is 109"
このbounds.min、bounds.maxがミソです。やっぱりSwiftはいけてるなあ!