Ваша собственная незнакомость с языковой функцией может быть хорошей причиной для легкого шага.Например, в C #, если вы не уверены в различиях между object y = func1() ?? func2();
и object y = func1() != null ? func1() : func2();
(подсказка: порядок оценки слева направо), то, возможно, вам лучше написать соответствующее предложение if
простопотому что понятно, что на самом деле происходит.Кто-то, кто знает нюансы языка лучше, может очень хорошо придти и рефакторинг позже, а тем временем стоимость обычно низкая.
Однако, если вы знаете, как использовать языковую функцию, я вижу малопричина избегать его использования просто потому, что другим может быть трудно понять.Если вы действительно чувствуете необходимость, добавьте комментарий (например, «?? is the _null coalescing operator_
»), чтобы помочь коллегам-разработчикам понять, на что обращать внимание, если они не могут понять из кода, что он делает, иВы боитесь, что им, возможно, придется пойти на это в одиночку.
Это, заметьте, о коде производства.Эксперимент, конечно, имеет свое место, но его место не обязательно в основной кодовой базе.Я всегда держу «скретч-проект» под рукой, когда хочу попробовать что-то, не рискуя воздействовать на что-либо еще.Там я часто беру вольности далеко за пределы тех, что я использую в производственном или производственном коде.