@nonsense отнаследоваться, не?
@mo ну отнаследуйся от str 😄
В Kotlin я так могу сделать. Удивился, что в петоне нельзя
@nonsense открою омерику, но от str, int, и любых встроенных классов можно наследоваться! Особо качественно можно упороться, если отнаследоваться от type, называется "метаклассы". Но да, тип литералов не изменится, и надо будет делать MyCoolStr("something something")
@nonsense @mo
Паста отсюда https://teletype.in/@skillbranch/HyTEcy2pS
Если в классе есть и функция-член, и функция-расширение с тем же возвращаемым типом и тем же именем и применяется с такими же аргументами, то функция-член имеет более высокий приоритет. К примеру:
class C {
fun foo() { println("member") }
}
fun C.foo() { println("extension") }
Если мы вызовем c.foo() у любого объекта c с типом C, на экран выведется "member", а не "extension".
@nonsense @mo да и как бы он на этапе компиляции понял, что тебе надо экстеншен по тексту, у которого нет отличий с вызовом метода? С чего вдруг это ошибка должна быть, неясно. Разве что сравнивать сигнатуры в либах разных версий. В общем я в компоненте "по историческим причинам на котлин" экстеншены использовать запретил от греха, как и кучу другого хлама.
@3draven @mo нет, с какого перегара? компилятор увидит неоднозначность