169 похожих чатов

Я уже аргументировал: ? — это safety оператор. если там что-то

есть, — оно считается и вызовется. если нет — не вызовется
! — это ты прямо указал: бля, слушай, я вот не хочу тут ебаться с типами поэтому давай будем думать, что там нет null. а он там может быть

21 ответов

6 просмотров

Странная логика. Зачем мне делать проверку через ?., если я допустим строчкой выше присвоил значение полю объекта и к нему обращаюсь. Я просто напрямую обращусь к нему сказав, что оно есть с помощью !

True Jokerge
Странная логика. Зачем мне делать проверку через ?...

Ну так он правильно всё аргументировал ! - это наеб компилятора ? - это вежливая просьба

Bohdan Bida 🇺🇦
Ну так он правильно всё аргументировал ! - это на...

Не совсем ? Это просто проверка как object.key && object.key.secondkey А вместо этого есть сокращение object.key?.secondkey

Так где наеб, если Let a: string | undefined = undefined; a = “smith”; a!.toCamelCase()

Ещё раз повторюсь, использовать ! Это плохая практика

Dmitriy
Ещё раз повторюсь, использовать ! Это плохая п...

Может у вас есть статья какая-то почему?

True Jokerge
Может у вас есть статья какая-то почему?

сколько у тебя лет коммерческого опыта?

True Jokerge
Может у вас есть статья какая-то почему?

Ну "!" говорит тайпскрипт что бы он не сообщал об ошибках типизации при отсутствии свойства у объекта. По сути это каст.

True Jokerge
Так где наеб, если Let a: string | undefined = u...

Объясни логику свою, зачем тут использовал !

True Jokerge
Так где наеб, если Let a: string | undefined = u...

function printSomeTextOnScreen(text) { ...magic... } let a = undefined a = "smith; printSomeTextOnScreen(a); Зачем тут тогда вообще ТС? Я же все равно соблюдаю контракт и правильные типы ставлю

Bohdan Bida 🇺🇦
function printSomeTextOnScreen(text) { ...magic.....

Затем что кто-то потом залезет и де нибудь напишет a = {value:"smith}; И выйдет у тебя потом на экране неведома хрень.

Dmitriy
Объясни логику свою, зачем тут использовал !

Переменной присвоено значение, нет никакого смысла проверять ее на null. Если бы это был чистый js, никто бы в здравом уме не написал код Let a = undefined; a = “smth” a !== unedifbed && a.toCamelCase()

Не хочется придумывать объяснение почему так для абстрактного примера. Не думаю, что кто либо когда-то напишет именно такой код. Но ситуация вполне реально где между и инициализацией и тем что, ниже было много другого

Firstname-Lastname Автор вопроса
True Jokerge
Не хочется придумывать объяснение почему так для а...

Ну на рефакторинге кто-то отредачит переменную: теперь она не будет включать проверку функции (ну просто, не знаю… человеческий фактор). Другой человек не обязан знать твой код. И все. Никаких предупреждений, будешь поставлен перед фактом в рантайме

True Jokerge
Не хочется придумывать объяснение почему так для а...

Мне кажется мы тебе понятно объяснили, какими другими путями можно это сделать Не используя ! Да о чем мы общаемся вообще, как чел с 4 годами ком опыта может доказывать что использование ! Это норм, я хз)))

Dmitriy
Мне кажется мы тебе понятно объяснили, какими друг...

Я и так знал, что можно делать это не используя ! Просто мое мнение заключается в том, что есть места, например, где присвоение и обращение происходят в одном месте и использовать ?. Вместо ! Не имеет смысла

Firstname-Lastname Автор вопроса
True Jokerge
Я и так знал, что можно делать это не используя ! ...

Имеет. Потому что этот оператор делает то же самое, но позволяет выкинуть дополнительную проверку и не сомневаться в этом участке кода никогда

True Jokerge
Переменной присвоено значение, нет никакого смысла...

Никто бы в здравом уме в целом бы такой код не написал, потому что там логический оператор вместо if

True Jokerge
Я и так знал, что можно делать это не используя ! ...

Использовать ? Вместо ! Имеет огромный смысл! Смотри, ! Жестко говорит что значение существует, а если его нет? Тогда все крашится ? Же делает ПРОВЕРКУ на существование и выполняет код дальше только если значение существует

True Jokerge
Переменной присвоено значение, нет никакого смысла...

На почитай кстати https://brendaneich.com/2012/04/the-infernal-semicolon/

Похожие вопросы

Обсуждают сегодня

Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
@NikaBelurgHR Бот? Ассемблер?
КТ315
11
юзеры Jetpack Compose тут?
Qtless Qtless
8
Добрый день! Подскажите, пожалуйста: какими компетенциями нужно обладать, чтобы претендовать на работу эрланг (отдельная благодарность, если про элексир тоже подскажете) разр...
via ☸️ led
20
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Карта сайта