Быстрая условная компиляция #if не удалась в списке выражений - PullRequest
0 голосов
/ 05 декабря 2018

Если есть довольно простой случай, когда 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 и добавив условный параметр, но это невозможно в других ситуациях, таких как вызовы функций.

У всех есть идеи для лучших способов обходаэто ограничение или мысли о том, почему ограничение существует в первую очередь?

...