Koko / Говнокод #27030 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
object Cорок {
    infix fun тысяч(b: String) = this
    infix fun в(a: String) = this
    infix fun сунули(a: String) = this
}

fun main() {
    Cорок тысяч "обезъян" в "жопу" сунули "банан"
}

Запостил: DypHuu_niBEHb DypHuu_niBEHb, (Updated )

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

  • Инфиксные функции в коко завезли, чтобы пилить DSLи.
    Стараются выгнать groovy из gradle.

    Что думаете?
    Ответить
    • Мне не нравится как это выглядит. Какое-то инфиксное веселье получается, а я вообще-то серьёзный, деловой человек, важными вещами занимаюсь, мне не до веселья обычно.

      Если раньше fun хоть и с усилием, но воспринимался как function, то сейчас, когда первое слово написано полностью, то и второе слово хочется прочитать не как сокращение )))
      Ответить
  • Обжектив си какое-то.
    [Сорок тысяч: "обезьян" в: "жопу" сунули: "банан"]
    Ответить
    • собачки перед строчками забыл. У тебя указатель на чар, а с собачкой был бы NSString или как там
      Ответить
    • в коко нет <<, там импотентско-пидорское "shl". Его можно оверлоадунть (как оператор) и можно сделать это инфиксно.
      Ответить
        • Это не оператор, как оказаось.
          Вот так работает
          object std {
              const val endl = '\n'
          
              object cout {
                  infix fun shl(str: String): cout {
                      print(str)
                      return this
                  }
          
                  infix fun shl(char: Char): cout = shl(String(CharArray(1).apply {
                      this[0] = char
                  }))
              }
          }
          
          fun main() {
              std.cout shl "Hello world" shl std.endl
          }
          Ответить
      • Свои создавать нельзя что ли? Анскилльненько.
        Ответить
          • именно поэтому я за «постгрес»
            можно хоть оператор
            #*@/>>>><<<</@*#
            заебенить
            ограничение на макс 63 символа из набора закорючек и небольшие правила, чтобы не путалось с комментариями или арифметическими унарными минусами и плюсами

            (только вот SFINAE не работает, к сожалению)
            Ответить
          • Фи. Именно поэтому я за «Python».
            >>> a, b = None, 42
            >>> a | b
            Traceback (most recent call last):
              File "<stdin>", line 1, in <module>
            TypeError: unsupported operand type(s) for |: 'NoneType' and 'int'
            >>> a or b
            42
            >>> 42 | 1
            43
            Ответить
            • на мой взгляд, кокошники переборщили со своей "борьбой с неоднозначным прочтением"

              Все таки вертиальную палочку и энд умеют все программисты (кроме стерторов на дельфи).
              А еще у них массив это не [] а какой-то arrayOf
              Ответить
              • > А еще у них массив это не [] а какой-то arrayOf
                Это, ЕМНИП, тяжёлое наследие ЙАЖИ.
                Ответить
                • в яже есть тип int[] и инициализатор new int[]{1,2,3,4}
                  а у низ это Array<Int> и arrayOf(1,2,3,4)
                  Ответить
                  • Я про https://stackoverflow.com/questions/6802483/how-to-directly-initialize-a-hashmap-in-a-literal-way.
                    // [В «Java 8»] No, you will have to add all the elements manually.
                    // You can use an initializer in an anonymous subclass to make the syntax a little bit shorter:
                    
                    Map<String, String> myMap = new HashMap<String, String>() {{
                            put("a", "b");
                            put("c", "d");
                        }};


                    Ну и в новой ЙАЖЕ появилось очень смешное
                    static <K,V> Map<K,V>	of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10)

                    Десяти ключей хватит всем. Если не хватит — будь добр заворачивать всё в «Map.Entry()» и юзать
                    ofEntries​(Map.Entry<? extends K,? extends V>... entries)

                    Ну хотя бы зайчатки вариадиков осилили!
                    Ответить
                    • Т.е. теперь на собеседовании придётся вспоминать в каком языке 9, а в каком 22? Пиздец, пиздец.
                      Ответить
                    • >ofEntries​(Map.Entry<? extends K,? extends V>... entries)

                      Это не породит ли ворнинг про ансейф каст разве? У тебя ведь получица массив Entry, а их параметры проебуца
                      Ответить
                            • Язык довольно прост, удобно встраивается в "HTML" страницы, содержит богатую библиотеку с функциями, нужными веб-разработчикам (почта, json, http, регулярные выражения).
                              Ответить
                          • Отсутствие генериков в рантайме это один из самых толстых отсовов джавы, даже у C# (не говоря уже про плюсы).

                            Сделано это ради совместимости с кодом, написанным до 1998-го года
                            Ответить
  • Добрый день.

    Этот оффтоп сгенерирован автоматически.

    Индекс оффтопов: https://index.gcode.space/.
    Зеркала Говнокода и полезные ресурсы:
    * https://govnokod.xyz/ (альтернативный Говнокод)
    * https://gcode.space/ (read-only зеркало Говнокода)
    * @GovnokodBot в «Telegram»
    * https://vorec.space/ (глоссарий Говнокода)
    Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8