【发布时间】:2010-05-19 14:38:22
【问题描述】:
我来自一个没有宏 (Java/Python/C#/Scala) 的地方,所以也许我的观点被扭曲了,但是......
为什么在 Cocoa 中使用宏?我想到的两个是NSLocalizedString 和NSAssert(和STAssert)。使它们起作用(可以内联)会很难/不适合吗?我想我觉得它们有点奇怪,因为它们是对 C 的不必要的回归(是的,我熟悉 Obj-C 的谱系)。
这只是过去发生的事情还是有特定原因?
【问题讨论】:
-
宏有什么问题?宏是新的
goto邪恶吗? -
不再是这个-.-
goto以适当的方式应用时并不邪恶。在某些情况下,它会导致比使用其他东西更简洁的代码(例如,一次中断几个 while、if、for 等。通常代码应该分成更多方法并返回使用,但goto肯定有如果一个人知道他在做什么,那就是地方。
标签: objective-c macros