Вы можете использовать Mirror
для размышления и сделать что-то глупое, как это:
struct API {
let apiEndPoint = "example.com/profile?"
let apiEndPoint1 = "example.com/user?"
}
func doSomething(api: API, endPoint: String) {
let mirror = Mirror(reflecting: api)
for child in mirror.children {
if (child.value as? String) == endPoint {
print(child.label!) // will print apiEndPoint
}
}
}
let api = API()
doSomething(api: api, endPoint: api.apiEndPoint)
doSomething(api: api, endPoint: api.apiEndPoint1)
Но я бы никогда не рекомендовал делать что-то подобное, и использование перечисления, подобного другому предложенному ответу, вероятно, способ до go.