- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我最喜欢 Cocoa 的一个原因是可读性因素。
最让我烦恼的事情之一是便利构造函数强制重复的约定。
举个例子:
[NSString stringWithString:s]
[NSNumber numberWithDouble:d]
[NSValue valueWithInt:i]
[NSDictionary dictionaryWithObjectsAndKeys:<blah>]
等等
为什么约定不简单地以单词“with”开始便利构造函数?那么我们将有:
[NSString withString:s]
[NSNumber withDouble:d]
[NSValue withInt:i]
[NSDictionary withObjectsAndKeys:<blah>]
等等
这是一个次要的讨论点,但我想我应该抛出一个,看看是否有比我更有影响力的人可以解释我脑海中的所有回声。
显然,我不会请求 AAPL 重写 appKit 以支持我的建议,但是是否有任何理由反对这样命名我自己的便利构造函数?
当然,我可以在自己的代码中使用任何我想要的约定,但我讨厌盲目地逆流而上。
最佳答案
实际上,这样做是有技术原因的。如果每个 shoelaceWithString:
类型的方法都更改为仅 withString:
,我们最终会得到大量具有相同名称方法和不同签名的类。这对编译器的静态类型检查起到了欺骗作用,并可能导致它抛出各种烦人和不必要的警告。
Cocoa 文化还有一个方面,即开发人员喜欢他们的代码是 self 记录的。这意味着方法名称表明它们的参数是什么以及它们返回什么。 Apple 的编码指南实际上警告了名称模糊的方法,建议在名称中添加单词以明确方法的作用是可取的。
关于objective-c - 为什么不用 "with"启动便利构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1017652/
我的图书馆的几个部分都带有“便利”功能。例如,容器类可能具有解析字符串信息的功能。这些功能不一定一直都需要(或想要),因此我想将它们放在单独的文件中,以便可以根据用户的需要将它们包括或省略。 应该如何
我已经尝试在 Stack Overflow 和其他网站上搜索使用 Sets 与 Lists 的优缺点和便利,但我真的找不到明确的答案何时使用这个或那个。 从 Hibernate 的文档中,他们声明非重
我是一名优秀的程序员,十分优秀!