gpt4 book ai didi

swift - 有没有办法让函数接受任何具有 rawValue 字符串的枚举类型?

转载 作者:可可西里 更新时间:2023-11-01 00:52:22 25 4
gpt4 key购买 nike

我想到的一种方法是制定其他 Enum 必须遵守的协议(protocol)。

protocol StringRepresentable
{
var rawValue: String { get }
}

struct Endpoint
{
enum User: String, StringRepresentable
{
case Login = "/user/login"
case Register = "/user/register"
}

enum Item: String, StringRepresentable
{
case Like = "/item/like"
case Buy = "/item/buy"
}
}

func urlString(endpoint: StringRepresentable) -> String
{
return "http://www.example.com\(endpoint.rawValue)"
}

let userLoginEndpoint = urlString(Endpoint.User.Login)
let buyItemEndpoint = urlString(Endpoint.Item.Buy)

还有比这更好的方法吗?

或者是否有一个协议(protocol),已经提供了类似的东西,但我错过了?

最佳答案

RawRepresentable 协议(protocol)已经有了,它可以满足您的需求。

并且您可以根据是否 RawValue == String 进行扩展

关于swift - 有没有办法让函数接受任何具有 rawValue 字符串的枚举类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32946576/

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