Size: a a a

Programming Offtop

2021 March 01

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
А в свифте такого нет?
Крч онлайн проверил. Нет, не умеет.
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
Крч онлайн проверил. Нет, не умеет.
источник

KD

Konstantin Dovnar in Programming Offtop
Aleksey D.
ссзб)
В том то и беда, что нет.
Ссзб был бы, если бы приведение типов работало, а ты и дальше восклицательными всё крыл.
источник

AM

Andrew Mikhaylov in Programming Offtop
Справедливости ради, мне тут с навешиванием реализаций интерфейса на класс снаружи этого класса, по-моему, ещё не пришлось ни разу is юзать :)
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
Справедливости ради, мне тут с навешиванием реализаций интерфейса на класс снаружи этого класса, по-моему, ещё не пришлось ни разу is юзать :)
Ты мне мозг сломал
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
Ты мне мозг сломал
protocol A { func doStuff() }
class C {
   var someValue: String
   init() { someValue = "Hello, world" }
}
extension C : A {
   func doStuff() { print(someValue) }
}
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
protocol A { func doStuff() }
class C {
   var someValue: String
   init() { someValue = "Hello, world" }
}
extension C : A {
   func doStuff() { print(someValue) }
}
Хм. Сходу кажется довольно странной системой.
И как это рабоает?
источник

KD

Konstantin Dovnar in Programming Offtop

val c = C();
c.doStuff();


отработает корренткно?
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar

val c = C();
c.doStuff();


отработает корренткно?
Да, конечно
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
Да, конечно
Т.е. оно смотрит на соответствие имен extension и class?
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
Т.е. оно смотрит на соответствие имен extension и class?
Так это экстеншн для типа C
источник

AM

Andrew Mikhaylov in Programming Offtop
Тут обычные функции навешиваются как
extension String {
   func isNotEmpty() { count > 0 }
}
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
Так это экстеншн для типа C
Ну.
Как.
Я сужу со стороны, и для меня это просто extesion C вокруг интерфейса A, а не extension для класса C  вокруг интерфейса А.
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
Ну.
Как.
Я сужу со стороны, и для меня это просто extesion C вокруг интерфейса A, а не extension для класса C  вокруг интерфейса А.
Нет, это именно второе.
источник

AM

Andrew Mikhaylov in Programming Offtop
Это экстеншн для типа C, который навешивает на него реализацию интерфейса протокола A.
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
Тут обычные функции навешиваются как
extension String {
   func isNotEmpty() { count > 0 }
}
Ох блять, в дарте похожий ужас и это временами ужасно раздражает.
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
Это экстеншн для типа C, который навешивает на него реализацию интерфейса протокола A.
Т.е. делая это расширение, ты обязан там реализовать всё то, от чего наследуешься?
Тогда это уже точно лучше дарта.
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
Ох блять, в дарте похожий ужас и это временами ужасно раздражает.
Меня тоже бесило поначалу, а потом свыкся. Всё равно их обычно больше одного на тип, потому я их просто группирую вместе, и славненько.
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
Т.е. делая это расширение, ты обязан там реализовать всё то, от чего наследуешься?
Тогда это уже точно лучше дарта.
Конечно. Если ты задекларировал, что этот экстеншн определяет реализацию для интерфейса A, будь добр соответствовать A целиком)
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
Конечно. Если ты задекларировал, что этот экстеншн определяет реализацию для интерфейса A, будь добр соответствовать A целиком)
Тогда, это вполне себе хорошо.
В дарте, как я понимаю, нельзя наследования расширение от чего-либо. И этого чертовски нехватает.
источник