сарткаста
ну будет такой же результат, ибо у Nothing и String? нет общего кроме Any. Тут больше | подходит
не, intersection-типы не так работают
fun <T> foo(param: T) where T : FirstInterface, T : SecondInterface { // param: FirstInterface & SecondInterface }
Тут больше подходит String, потому что если вы хотите объявить наличие выбрасываемой ошибки - сделайте это в кдоке :)
можно вызывать или методы FirstInterface, или SecondInterface
ну в "JS" именyо так позначать union nипы
мб First | Second?
а я как написал ?
хз, я написал через &, а не через | https://t.me/kotlin_lang/263120
fun <T> foo(param: T) where T : Number, T : String { // бдышь }
порпобуй
а, ну два класса нельзя
в любом случае про общий Any не релевантно, ведь у интерфейсов разных точно такой же общий тип только Any
интерфейсы "наследуются" от ANY
лол так в твоем примере так и будет (должно)
тэкс, ещё раз, есть функция: interface FirstInterface { fun bar() } interface SecondInterface { fun baz() } fun <T> foo(param: T) where T : FirstInterface, T : SecondInterface { // param: FirstInterface & SecondInterface param.bar() param.baz() } внутри я могу вызывать либо методы одного интерфейса, либо другого. т.е. несмотря на то, что у них общий тип только Any, я могу вызывать методы обоих интерфейсов. Точно также мог бы String? & Any работать
это в паралельной вселенной ?
что в паралелльной вселенной?
Не понял. String? & Any — это же полный эквивалент String, не?
я затупил, имел ввиду String & Nothing (как в начале писал)
ну так тут метод один и тот же
String & Nothing если что эквивалентно просто Nothing, т.к. Nothing подтип String.
какой метод один и тот же? bar и baz?
а не увидел. Ну такое в джаве не работает
нет, не так. иде это позволит видеть метод plus, которого нет у типа Nothing
да что за фигня? я же говорю, это из джавы!
https://en.wikipedia.org/wiki/Intersection_type я читаю про пересечение, но может у меня анг отвратительный
хммм, не проверял. Но ладно значит я не прав
Обсуждают сегодня