gpt4 book ai didi

ios - 通用 RawRepresentable 协议(protocol)属性

转载 作者:行者123 更新时间:2023-11-30 12:33:56 24 4
gpt4 key购买 nike

我正在寻找编写一个将与各种测量结构一起使用的协议(protocol)。每个结构体都有自己的 Units 枚举,用于定义用于比较的单位类型:

public enum TestUnits: Double {
case foo = 100.0
case var = 1000.0
}

所有枚举都是Double类型并符合RawRepresentable。我正在寻找一种方法来创建通用协议(protocol)属性,每个 Struct 可以设置自己的单位枚举以进行比较和格式化:

protocol UnitMeasuable {

var measurementType : SOMETHING<RawRepresentable> { get}

func someFormattingFunc(type: measurementType) -> String
}

我只是不清楚如何声明measurementType,以便它由单独的结构设置。

谢谢

最佳答案

在这种情况下,我希望您有两种选择。

# 在您的协议(protocol)上使用关联类型

 protocol UnitMeasuable {
associatedtype Something where Something: RawRepresentable

var measurementType: Something { get}
func someFormattingFunc(type: Something) -> String
}

或者忘记变量(我认为你没有理由应该拥有该属性,但我真的不知道你的计划是什么)并在函数中使用泛型。

protocol UnitMeasuable {
func someFormattingFunc<Type: RawRepresentable>(type: Type) -> String
}

希望这有帮助!

关于ios - 通用 RawRepresentable 协议(protocol)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43124425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com