Некоторые оптимизации/алгоритмы делают код значительно менее читаемым, поэтому полезно сохранять возможность отключать сложные и неудобные функции в файле/модуле, поэтому любые ошибки, возникающие при модификации этого кода, могут быть быстро протестированы против простого кода.Возможна функция «Уровень» файла или модуля?
В настоящее время с помощью const USE_SOME_FEATURE: bool = true;
кажется разумным способом, но делает код чтения немного странно, так как USE_SOME_FEATURE
используется как ifdef
в С.
Например, Clippy хочет, чтобы вы написали:
if foo {
{ ..other code.. }
} else {
// final case
if USE_SOME_FEATURE {
{ ..fancy_code.. }
} else {
{ ..simple_code.. }
}
}
в:
if foo {
{ ..other code.. }
} else if USE_SOME_FEATURE {
// final case
{ ..fancy_code.. }
} else {
// final case
{ ..simple_code.. }
}
Что ИМХО больно читаемость, и может быть проигнорировано - но вызывается с помощью булева где feature
может иметь больше смысла.
Есть ли способ открыть объект внутри файла, не указав его в ящике?
(поскольку это только для внутренних отладочных и тестовых изменений кода).
Для чего это стоит, я думаю, что клип совершенно не прав, чтобы жаловаться на это; иногда вложенные ifs легче читать, чем цепочка 'else if'. Если вы в первую очередь обеспокоены чистым счетом здоровья от клипа, я бы поискал способ отключить эту ворсину (возможно, только для этого экземпляра). – trentcl
Я пошел искать и [проблема] (https://github.com/Manishearth/rust-clippy/issues/798), чтобы отключить этот lint, когда есть комментарий во внешнем 'else'. – trentcl