2
Один из способов, с помощью которого я пришел, - сделать протокол, который должен соответствовать другому Enum.Есть ли способ сделать функцию для принятия любых типов Enum, у которых есть rawValue String?
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)
Есть ли другой способ, который лучше этого?
Или есть протокол, уже предоставленный что-то вроде этого, что я пропустил?
На первый, я не совсем понимаю ваш ответ, но я только что посмотрел в него и придумал что-то вроде этого Func (конечная точка: T) -> String Это вы имеете в виду? –
myLifeasdog
Что-то в этом роде. – Abizern