如果有一个非常简单的情况,那就是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
并附加条件参数来解决此特定示例,但这在诸如函数调用之类的其他情况下是不可能的。
每个人都有解决此限制的更好方法的想法,或者对为什么首先存在该限制有想法?