【发布时间】:2018-09-18 07:57:46
【问题描述】:
因此,在目标 C、C/C++、.NET 以及我使用过的几乎所有其他语言中,您可以声明可以包含先前常量的常量,例如
#define PI 3.14159
#define HALFPI (PI/2)
const CGFloat BOTTOM_BAR_HEIGHT = 200;
const CGFloat BOTTOMBARCONTENTS_DY = BOTTOM_BAR_HEIGHT/2;
但这似乎在swift中不起作用
let PI=3.14159
let HALF_PI=PI/2
这是一个真正有用的模式,如果你正在尝试做一些事情,比如(许多例子中的一个)布局尺寸,或者任何一组相互依赖的常量。有什么方法可以快速实现这种模式,而不将它们声明为 vars 并将它们设置在初始化函数中(这将使一些非常冗长的代码的大小加倍并降低可维护性,使用 vars 而不是 let 会招致任何低级惩罚,并毁了我对 swift 的第一印象)?谢谢。
【问题讨论】:
-
定义“似乎不起作用”。
-
仅供参考 - 不要定义自己的
PI。在需要的地方使用Double.pi或CGFloat.pi。 -
如果在类中定义了这些常量,请将它们设为
static。 -
哎呀,rmaddy,我应该澄清一下,我正在尝试在类主体中的函数之外执行此操作。它似乎在函数体中工作。如果我只在一个功能中需要它们,那会很好。所以我收到编译错误“不能在初始化程序中使用实例成员 XYZ”。 (当然 PI 就是一个例子)
-
成功了。 (使用静态)。谢谢!!
标签: swift