官术网_书友最值得收藏!

1.2.2 關(guān)聯(lián)類型

在協(xié)議里定義的關(guān)聯(lián)類型也可以用泛型來處理。我們定義一個協(xié)議,如下所示。

protocol HTNState {
    associatedtype StateType
    func add(_ item: StateType)
}

采用非泛型的實現(xiàn),如下所示。

struct states: HTNState {
    typealias StateType = Int
    func add(_ item: Int) {
        //...
    }
}

采用泛型遵循協(xié)議,如下所示。

struct states<T>: HTNState {
    func add(_ item: T) {
        //...
    }
}

這樣關(guān)聯(lián)類型也能夠享受泛型的好處了。

主站蜘蛛池模板: 阿巴嘎旗| 临高县| 绥芬河市| 视频| 怀来县| 杨浦区| 保山市| 原平市| 宁蒗| 合阳县| 绵竹市| 荥阳市| 镶黄旗| 黄大仙区| 城步| 白城市| 南宫市| 耿马| 涟源市| 玉溪市| 康保县| 南阳市| 荣成市| 封丘县| 巴林左旗| 洪湖市| 宝山区| 翁源县| 无为县| 平湖市| 临潭县| 平谷区| 滦南县| 尼玛县| 镇原县| 双桥区| 南靖县| 衢州市| 东乡| 日土县| 凤冈县|