Вы можете использовать интерполяцию строк для архивирования так же, как в Obj- C:
val userId = 24
const val kUrl = "/users/$userId/profile"
const val kUrl = "/profile/$firstname/$surname"
Но это не безопасный способ создания URL. Скажем, ваш firstname
оказался "na /? / Me" - это нарушило бы структуру URL. Чтобы избежать этой проблемы, строки должны быть закодированы , чтобы их можно было безопасно поместить в URL
Для архивации, так что рассмотрите URLEncoder
вспомогательный класс
val valueEncoded = URLEncoder.encode (value , "utf-8");
тогда его можно безопасно подключить к строке URL:
const val kUrl = "/users/$valueEncoded/"
или можно выполнить кодирование параметров пути вместо
const val kUrl = "/users/${URLEncoder.encode(value, "utf-8")}/"
Kotlin way
Если вы заметили, что вам нужно часто преобразовывать параметры, можно создать функцию расширения в ограниченном объеме, где это необходимо, например:
fun String.toUrlSafe() = URLEncoder.encode(value, "utf-8")
// Use
val url = "/path/${param1.toUrlSafe()}/${param2.toUrlSafe()}/something"