1. Go / Говнокод #28110

    +1

    1. 1
    2. 2
    math.Min(float64, float64) float64
    math.Max(float64, float64) float64

    В goвне нету math.Min для integer. Даже в анскильном "Си" это есть.

    https://www.pixelstech.net/article/1559993656-Why-no-max-min-function-for-integer-in-GoLang

    Запостил: 3_dar, 05 Апреля 2022

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

    • Goвно
      Ответить
    • > Since there is max/min implemented for float64 data types, there cannot be function with the same name but with different parameter type implemented in the same math package

      В сраной сишке придумали, как эту проблему решить дохуя лет назад. Goвнюни-смузиёбы ниасилили.
      Ответить
      • для флоатов можно использовать интегерный min/max просто реинтерпретнув их
        Ответить
        • внатуре.
          https://godbolt.org/z/P7Pr4aGK1
          кто найдёт UB?
          Ответить
          • Бесконечности и наны считать точно не будет. Возможно с денормализироваными числами тоже проблемы.
            Ответить
            • денормализированные флоаты ня нужны
              Ответить
              • А денацифицированные и демилитализированные?
                Ответить
                • В смысле изнаcилованные, ограбленные, убитые и сожженные?
                  Ответить
                  • это не мы, это PHP
                    Ответить
                    • PHP язык-террорист, и должен быть запрещен
                      Я накладываю на PHP санкции, а так же на всех, кто им пользуется
                      Ответить
                      • Тогда ты сидишь на ссанкционном ресурсе и в ссанкционном интернете.
                        Ответить
      • > В сраной сишке придумали, как эту проблему решить дохуя лет назад

        Очередные хипстеры-gовноеды не смогли реализовать, то что было в языке 50 летней давности. Доколе?

        Ирочнично то, что goвнюки сперва форсили своё поделие как better C и заманивали олдфагов Кеном Томпсоном.
        Ответить
    • То есть инты кастятся во флоаты и сравниваются через fpu?
      Ответить
      • Мы берем ма-те-ма-ти-ческий модуль и используем его для работы с целыми числами. Что может пойти не так?
        Ответить
        • Не, серьезно, наверное, мин-макс-баунд и т.п. имхо должны быть где-нибудь в каком-нибудь utils или типа того (funkcii.go).
          Ответить
          • Поделись своим
            Ответить
            • поделись улыбком своим
              Ответить
            • BOOL IsFileExists( LPCTSTR sFileName )
              {
              	HANDLE hFile = CreateFile(sFileName, 0, 
              		FILE_SHARE_WRITE | FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
              	if (hFile == INVALID_HANDLE_VALUE)
              		return FALSE;
              	CloseHandle(hFile);
              	return TRUE;
              }
              
              DWORD GetFileSize( LPCTSTR sFileName )
              {
              	HANDLE hFile = CreateFile(sFileName, GENERIC_READ, 
              		FILE_SHARE_WRITE | FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
              	if (hFile == NULL)
              		return INVALID_FILE_SIZE;
              	DWORD dwSize = GetFileSize(hFile, NULL);
              	CloseHandle(hFile);
              	return dwSize;
              }
              Ответить
              • >IsFileExists
                borken english

                Ты работаешь писателем win32api?
                Ответить
                • Сам удивился.

                  В молодости всякое бывало...
                  Ответить
                  • Удивительно, что в молодости это казалось нормально, и даже удобно.
                    А теперь мы развращены высокоуровневыми API, и длиннющие вручные портянки на сишке кажутся нам неудобоворимыми
                    Или не кажутся?
                    Ответить
                    • Да не. Уже тогда, как видишь, хотелось все эти кишки запихнуть в одну удобную функцию, типа LoadFileToMemory, которая и память выделит через new char[], и все данные считает, и еще нолик на конце припишет на всякий случай, чтобы можно было сделать
                      VOID * LoadFileToMemory( LPCTSTR sFileName, DWORD *pdwSize /* = NULL */ )
                      {
                      	return LoadFileToString(sFileName, pdwSize);
                      }
                      Ответить
        • >Мы берем ма-те-ма-ти-ческий модуль
          Получаете те-ле-фун-кен
          Ответить
        • У меня в контроллерах часто нет никакого "FPU"
          Ответить
          • Мне кажется, что уже проще дать список того, что у тебя в контроллерах есть.
            Ответить
          • Только Царские инты! Только хардкор!
            Ответить
    • Уже завезли нормальные min и max, всего-то год надо было подождать. Но они особо и не нужны.
      Ответить
      • Интересно что завезли. В goвне даже overloading-а нету.
        Ответить
        • В сишке может есть? В питухоне? В перле? Джс? Руби?
          Ответить
          • А он и не нужен.
            Ответить
            • питу𝕏он и пэ𝕏апе не нужны. Джс просто 𝕏уйня из под коня. А яибу язык о𝕏уеххный
              Ответить
    • 𝕏
      Ответить
    • питуон и пэапе не нужны. Джс просто уйня из под коня. А яибу язык оуеххный
      Ответить

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