【问题标题】:Why are all things in Objective-C created by * lower case?为什么Objective-C中的所有东西都是由*小写创建的?
【发布时间】:2012-09-19 12:46:38
【问题描述】:

我真的对这件事感到困惑。在任何教程、github 上的代码和文档中,我都看到 BOOL、NSString、NDDictionaries 等都以小写字母开头。例如。 NSString *aString 这个有必要吗?如果我在创建 BOOL 等时使用大写字母,是否会毁掉任何东西?我在这里真的很困惑:P 非常感谢任何帮助!

编辑:使用下划线然后在大写字母中声明变量是个好主意吗?

【问题讨论】:

  • 你为什么感到困惑?你有遇到什么问题或困难吗?你自己尝试过什么吗?
  • 我确实尝试过,虽然控制台上没有出现任何问题,但我只是想与专家再次确认...... :)
  • 它更像是一个编码标准。我刚刚参加了 SCJP 考试,他们有一整章是关于编码标准的。由程序员决定他们如何在那里开发代码,但要考虑必须对其进行修改的人。使用大写字母会使阅读更容易还是更难阅读。我的建议是坚持大多数开发人员都理解的编码标准。

标签: iphone cocoa nsstring


【解决方案1】:

这只是风格问题。使用大写字母不会毁掉任何东西,除了您在遵循这种风格的人中的声誉。

【讨论】:

  • 所以我可以使用大写字母创建东西?谢谢,因为除了@Wooble,我真的找不到这个问题的任何答案!
  • 编译器在很大程度上并不关心变量的名称(这并不是说这是个好主意。)
【解决方案2】:

从 cmets 添加

它更多的是编码标准。我刚刚参加了 SCJP 考试,他们有一整章是关于编码标准的。由程序员决定他们如何在那里开发代码,但要考虑必须对其进行修改的人。使用大写字母会使阅读更容易还是更难阅读。我的建议是坚持大多数开发人员都理解的编码标准。

同样在编码标准下,您通常会用大写字母和以小写开头的变量声明您的类。这样在进行修改时不会让其他开发人员感到困惑,更重要的是不会让您感到困惑。如果你被自己的代码弄糊涂了,那就不好了。

但是标准说应该是这样的:

 NSString *nsString; // Not that you should be having a variable like this. But stops the any confusion.
 [nsString uppercaseString];

如果你有这个,它会开始变得混乱

 // Compile won't actually let you have this just an example of confusion and reserved words. 
 NSString *NSString;
 [NSString uppercaseString];

在编码标准中,有经验的开发人员必须知道,任何以大写开头的东西通常都是一个类,而任何以小写字母开头的东西都是一个变量。这几乎适用于所有编程语言。在学习prolog 时,我确实看到了一些关于编码标准的困惑。

和 Sun 一样,Apple 也有编码标准here

【讨论】:

  • 谢谢!这是我在这个问题上找到的最深入的答案@Popeye
  • @iHackerMe 没问题。尽早了解良好的编码标准总是一件好事,因为它可以在未来节省大量时间和混乱。祝你好运,提高你的编程技能。
【解决方案3】:

它是 Cocoa 中的编码约定之一。

Apple 网站上有一个关于Coding Guidelines For Cocoa 的文档。

遵循这些约定很有用。不仅因为它使您的代码更容易被其他 Cocoa 开发人员阅读,还因为现代 LLVM 编译器有时依赖这些约定,并且您会收到编译器警告,因为您认为是误报而不是因为你的非传统代码。

【讨论】:

    【解决方案4】:

    这是一个通用标准,可帮助您区分类和类/变量的实例。

    不同的语言使用不同的标准,但您应该始终使用您所使用语言的通用样式。

    【讨论】:

      【解决方案5】:

      它被称为驼峰表示法。 Ruby 人喜欢 underscore_notation、iOS camelBack。虽然在我看来,它也更容易区分对象(camelBack)和类(大写)。

      【讨论】:

        【解决方案6】:

        这只是 Objective-C风格或标准。你也可以像这样声明你的变量 -

        BOOL  MyVariable;
        

        它也可以工作,但它会在类名和变量名之间造成混淆,这不是友好的代码。所以我们使用正确的rule 来声明变量

        【讨论】:

          猜你喜欢
          • 2018-01-08
          • 1970-01-01
          • 2017-08-10
          • 1970-01-01
          • 1970-01-01
          • 2011-02-03
          • 1970-01-01
          • 2012-02-24
          • 2016-01-29
          相关资源
          最近更新 更多