Если есть довольно простой случай, когда Swift (v4.2 на запрос) не будет учитывать блок условной компиляции #if
, если он появляется в списке выражений.
Пример:
let params = [
("a", "1"),
("b", "2"),
#if FOO
("c", "3"),
#endif
("d", "4")]
Это приводит к ошибке: Expected expression in container literal
Это похоже на смехотворно распространенный сценарий и, похоже, ничего не нарушает в документах Swift по управлению компилятором .Я могу обойти этот конкретный пример, объявив params
как var
и добавив условный параметр, но это невозможно в других ситуациях, таких как вызовы функций.
У всех есть идеи для лучших способов обходаэто ограничение или мысли о том, почему ограничение существует в первую очередь?