1. Куча / Говнокод #28851

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    import std.stdio;
    
    interface Pethu {
        final void Say() {
            writeln("Hrueeee");
        }
    }
    
    void SayTwice(Pethu pethu) {
        pethu.Say();
        pethu.Say();
    }
    
    class PethuImpl : Pethu { }
    
    void main() {
        auto pethu = new PethuImpl();
        pethu.SayTwice();
    }

    Запостил: Desktop, 19 Сентября 2023

    Комментарии (54) RSS

    • #seo

      язык богов!!!111
      Ответить
      • Это красивое решение, и оно в целом помогает дискаверабилити
        Так нельзя в растне матапушто правило сиротки. Я забыл кстати, можно-ли так в Говне
        Сейчас проверю
        Ответить
        • sosat

          As the compiler mentions, you can't extend existing types in another package. You can define your own type backed by the original as follows:
          Ответить
          • ну с another package я и здесь, если честно, не проверял

            хотя в соседнем треде делал это для Int, а потому по идее всё ок
            Ответить
            • Просто в том же самом файле можно и в Расте, и в Го.

              В C++ можно дефеницировать функцию где угодно, но декларнуть всё же нужно в декларации класса
              Ответить
              • A more complex example:

                stdin.byLine(KeepTerminator.yes)
                    .map!(a => a.idup)
                    .array
                    .sort
                    .copy(stdout.lockingTextWriter());


                is the equivalent of:

                copy(sort(array(map!(a => a.idup)(byLine(stdin, KeepTerminator.yes)))), lockingTextWriter(stdout));
                Ответить
                • Вот это заебись


                  В коко можно через extn. methods кстати
                  и в грувя
                  Ответить
                  • зацени ещё final метод с реализацией в интерфейсе

                    при этом в языке так же есть абстрактные классы
                    Ответить
                    • зачем и чем они все отличаются
                      Ответить
                      • ну возможности немного разные, а так сложно сказать, надо читать истерические справки
                        Ответить
                    • Реализация в интерфейсе меня убила. Я раньше думал, что интерфейс должен быть чисто абстрактным.
                      Ответить
                      • Нахуя?
                        Чем он лучше pure abstract класса?

                        Зачем он вообще в ЯЖА и Сисярп? Особенно зачем он там после появления дефолтных методов?

                        Зачем он в пыхе я не спрашиваю: это глупый вопрос
                        Ответить
                        • В Йаже есть интерфейсы, потому что там запретили множественное наследование неабстрактных классов, ибо нехуй мешать импельменьтацию с риском получить случайное поведение.
                          Ответить
                          • чем интерфейс с дефолтимплементацией отлич от абстр класса?


                            В С++ багор сокрыт в невиртуальном наследовании, а в ЯЖА его нету, так что проблема решается MRO, как в питухоне
                            Ответить
                            • если говорить про D

                              в абстрактном классе могут быть поля/проперти, у интерфейса нет (статические, впрочем, могут быть)
                              Ответить
                              • Вы же про Дэ пиздите чисто из научного интереса? Это как экспертно пиздеть про космические корабли Макса, но при этом в реальности никогда в этом не участвовать?
                                Ответить
                                • Я рассматриваю его как язык для пет проектов
                                  Ответить
                                • > в реальности никогда в этом не участвовать
                                  в реальности гордиться капсулой Восторг с окнами, настолько большими, что дядя Гага не привез из командировки в Саратовскую область ни одной фотографии
                                  Ответить
                      • ну в свифте тоже есть default implementations, не 100% эквивалент, но я уже привычный

                        можно делать AOP
                        Ответить
      • а можно `SayTwice` в другом модуле (или как оно там у вас называется?) определить?
        Ответить
        • вот здесь я сделал похожее вообще на шаблонах:
          https://govnokod.ru/28850#comment1173165

          это ведь по сути не расширение типа, а сахарок:
          https://dlang.org/spec/function.html#pseudo-member

          но как-нибудь проверю для кастомных типов и скажу
          Ответить
        • а, я туплю, ты про противоположное спрашиваешь. ну, если функция видна в скоупе, то должно работать. в стандартной библиотеке там куча таких
          Ответить
        • В говне, кстати, нельзя. Недавно пришлось сильно ебаться из-за этого.
          Ответить
    • https://pbs.twimg.com/media/F5vO8p_WwAAedPy?format=jpg&name=small
      Ответить
      • судя по орфографии, она и своей не сильно интересовалась

        ах да. ПОШËЛ НАХУЙ СО МОЕЙ ВЕТКИ, ГОНДОН
        Ответить
      • Пиздец шлюха. Хоть бы с левого акка спрашивала
        Ответить
        • Судя по орфографии, спрашивает сын с левого акка. А скорее всего, оба акка левые.
          Ответить
          • Чтобы на Пикабу выложить и кармы надрочить? Ясно.
            Ответить
            • Знаешь, сейчас ещё модно выкладывать картинки типа скриншот форума/блога: картинка, а под ней комментарий с замазанным ником и авой. Судя по стилю, это не скриншоты реальных сайтов, а просто автор под картинкой фотошопом добавил вымышленный комментарий, думая, что так будет смешнее.

              Где-то рядом по стилю фейковые скриншоты переписки в Вотсаппе.
              Ответить
          • зачем делать какие-то акки, если можно просто хтмл в браузере поправить
            Ответить
            • Зачем править HTML, когда можно в "mspaint" нарисовать белый квадратик, и написать любой вообще текст?
              Ответить
            • анскильный школьник же
              Ответить
    • > writeln("Hrueeee");

      Это в хрюкни.
      Ответить
    • Страйко, почему для Go'вна есть раздел, а для D нету? На D не говнокодят?

      Да и для Rust'а нету.
      Ответить
      • Ну ты ещё спроси почему FORTRAN и COBOL нету. Какой смысл добавлять говны, если их через пару лет опять удалять?
        Ответить
    • Ik ben moe, ik ben verdrieteg en verveden, en ik wil drinken. Drinken is altijd erg goed van jouw humeur
      Ответить

    Добавить комментарий