1. Objective C / Говнокод #13464

    −101

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    @implementation NSString (toint)
    - (long long)toInt {
        if (self == nil) return 0;
        if (self.length == 0) return 0;
       return [self longLongValue];
    }
    @end

    В этом коде все прекрасно. Я просто оставлю это здесь. Джава головного мозга.

    Запостил: notxcain, 22 Июля 2013

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

    • Как обычно в Objective C тредах:
      кеп, ты где?
      Ответить
      • Строки 3 и 4 нафиг не нужны.
        longLongValue от nil и от пустой строки прекрасно вернет ноль и само.
        Но человеку захотелось нагородить категорию над NSString ради одного бессмысленного метода.
        Ответить
        • Проверка self на nil вообще прекрасна. Тут явно не Java в голове...
          Даже полез проверять, может ли в категорию каким-то образом nil прийти. Но собственно от метода же ничем не отличается.
          Ответить
          • А, в голове наверн C#, там же может быть null в extension-методах
            Ответить
            • В с++ тоже может быть 0 в this, и это даже работает в невиртуальных методах, если к полям не лезть, но это как бы UB ;)
              Ответить
    • Никого не оскорбляю.

      Но я не понимаю, как из С получились ObjC и C++.

      Судя по листингам - С гораздо ближе к ассемблеру, чем к своим потомкам.
      Ответить
      • Близость языка к асму нерелевантна.

        Напомню старую истину: настоящий ассемблерщик может на любом языке ассемблер писать. ("писать ассемблер" понимать не буквально, а образно.)
        Ответить
      • ObjC получался не из С, а из SmallTalk
        Ответить
        • Obj-C получился методом взбивания в миксере C и SmallTalk
          Ответить
          • Objective-C получился из С путем добавления препроцессора и идеологии Smalltalk.
            Ответить
            • для любителей покопаться http://www.cs.rit.edu/~ats/books/ooc.pdf
              Ответить
              • Спасибо, я ткнул сюда одного желающего выучить ObjectiveC через C++. =)
                Ответить
          • Кстати, на новой работе есть персонажи, к которым хочется применить телесные наказания?
            Ответить
            • Да не особо. Я недостаточно знаю язык, который сейчас использую на работе, чтобы судить о качестве кода.

              Кстати о птичках. Ты там на работу в новооткрывающейся фирме устраиваться не собираешься? А то когда говорят, что я по качеству кода из претендентов 2й - вариант остаётся только один (только смотри не зазнайся ;) )
              Ответить

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