Swift条件#if表达式列表编译失败

时间:2018-12-05 05:45:45

标签: swift compiler-errors

如果有一个非常简单的情况,那就是Swift(从v4.2开始问)如果出现在表达式列表中将不遵守#if条件编译块。

示例:

let params = [
  ("a", "1"),
  ("b", "2"),
#if FOO
  ("c", "3"),
#endif
  ("d", "4")]

这会产生错误:Expected expression in container literal

这似乎是一种荒谬的常见情况,似乎没有违反Swift docs on Compiler Control中的任何内容。我可以通过将params声明为var并附加条件参数来解决此特定示例,但这在诸如函数调用之类的其他情况下是不可能的。

每个人都有解决此限制的更好方法的想法,或者对为什么首先存在该限制有想法?

0 个答案:

没有答案