Swift簡明チュートリアル(7)汎用

7367 ワード

Swift簡明チュートリアル(7)汎用
カッコを使用して、汎用関数またはタイプを定義します.

func repeat<ItemType>(item: ItemType, times: Int) -> ItemType[] {
    var result = ItemType[]()
    for i in 0..times {
        result += item
    }

    return result
}
repeat("knock", 4)
         、          。

//    Swift     optional  
enum OptionalValue<T> {
    case None
    case Some(T)
}

var possibleInteger: OptionalValue<Int> = .None
possibleInteger = .Some(100)
  where                ,  :        、        、          。

func anyCommonElements <T, U where T: Sequence, U: Sequence, T.GeneratorType.Element: Equatable, T.GeneratorType.Element == U.GeneratorType.Element> (lhs: T, rhs: U) -> Bool {
    for lhsItem in lhs {
        for rhsItem in rhs {
            if lhsItem == rhsItem {
                return true
            }
        }
    }

    return false
}

anyCommonElements([1, 2, 3], [3])
  
  anyCommonElements  ,              。
where,            , <T: Equatable> <T where T: Equatable>