【问题标题】:Colour instead of color?用颜色代替颜色?
【发布时间】:2011-01-27 12:42:03
【问题描述】:

我正在使用 C++ 开发游戏引擎,我有一些方法,比如 setColour 和使用英国语法的东西。当我在思考 C++ 编译器如何主要使用英语(如果我错了,请纠正我)以及大多数 API 如何使用美国语法时,我应该顺其自然,继续语法程序员高级委员会的非官方标准还是成为叛逆者?

我不确定是哪个。

【问题讨论】:

  • 作为外国人,我也有同样的问题。不幸的是,据我所知,没有达成共识。例如 boost 使用英式和美式拼写。
  • 编译器不使用英语。编译器使用编译器语言。哔哔哔哔哔。
  • @George:我认为他的意思是 C++ 关键字是(基于)英文的。错误消息等可以本地化。 zed。
  • 乔治:“哔哔哔哔哔。”看,我试过了,但是每当我对 my 编译器这么说时,它都会给我一些烦人的错误消息。我认为我的编译器一定是坏了。
  • Creat 不是拼写错误,5 个字母是对前任的限制。桑巴舞手册中有一个条目,上面写着入口是某种拼写方式,因为他们是澳大利亚人,会说女王的英语。

标签: c++ colors grammar


【解决方案1】:

您选择哪种命名约定并不重要。在您自己的代码和您使用的任何相关 API 中,只要您保持一致,请使用您更熟悉的任何形式。

【讨论】:

  • 这是我不同意共识的一种情况:为什么不让 both doStuffColor and doStuffColour 工作,并产生相同的结果?这可以通过一些简单的#defines 或内联函数(或两者)来完成。
  • @Chris:这似乎没有必要。只需选择一本字典即可使用并保持一致。
  • @Chris:这是不必要的维护负担。为什么你应该有两个功能完全相同,只是名称不同?这不是必需的。期间。
  • @Chris 为什么没有德语和所有其他语言的 SetColor。
  • 说“命名约定不重要”然后说“只要你是一致的”不是矛盾的吗?只是说...
【解决方案2】:

做一个反叛者!使用你的母语英语。

如果您想向美国人扔一个 sop,请提供拼写错误的封面函数(滑稽地:但要确保它们运行得足够慢,以便他们更喜欢使用正确的拼写)。

【讨论】:

  • +1 表示“双管齐下”。在这种情况下,这可能是最好的方法。
  • @Chris:真的吗? localizelocalise 怎么样? (英式英语中的变体拼写,以及英美差异)。您是否也总是记得制作那些#defines?灰色与灰色怎么样?或者我们不要忘记欧盟的协调:Gris、Grau、Grigio、Šedá(我承认,我查到的最后一个)。我认为这可能会很快失控。
  • 嗯,对于 C++0x,std::liststd_en::liststd_es::listastd_de::Liste 等等 ;-)
  • @Steve Jessop:看到std_ja::リスト 会很有趣
  • @dreamlax。这实际上并不是一个可怕的想法。在主要 IDE 中具有“选择查看语言...”的功能,可以为您从一种翻译到另一种。
【解决方案3】:

你选择哪一个并不重要,但要确保你保持一致。

【讨论】:

    【解决方案4】:

    绝对最明智的做法是选择一个约定并坚持下去(并且记录它)。 C++ 仅“使用”少量保留关键字。其他一切都取决于您(当然,疯狂的命名约定只会激怒那些追随您的人)。

    不过,为了更笼统地说,绝对没有理由改变您习惯于拼写的方式。我听说过很多案例,人们继承了其 cmets 是法语或德语的代码:现在 在维护方面可能是一个问题!

    编辑:我认为所有的答案都没有触及到一点,说你应该坚持美式拼写:在很多情况下(据我所知)美式拼写本身并没有收敛,例如“参数化”与“参数化”(注意我使用了“z”,所以这两个都是美国拼写)。

    【讨论】:

      【解决方案5】:

      您应该使用color 的美式拼写。 99% 的代码都使用这个,甚至包括大部分由英国或澳大利亚英语使用者编写的代码。如果您使用不同的东西,您(或使用您的代码的其他人)最终会忘记使用哪个并犯下不必要的错误。

      【讨论】:

      • +1 作为一名新西兰人(我们使用英式拼写),我总是会尝试并坚持使用“正确”的英式方式,直到有一天我意识到它是多么可笑——只使用颜色。绝大多数代码已经在使用它,它更短,而且我不经常在英语课上提交我的代码。
      • +1 如果您正在使用已经使用color 的Java API 之类的东西,则尤其如此。将您自己的 colour 与 API 的 color 混合是自找麻烦。 (顺便说一句,我是澳大利亚人。)
      • 我同意,这就是我的工作方式,但它仍然让我感到难过......尤其是在我调试并最终发现颜色的“错字”的所有时间:(
      • @Michael 虽然“颜色”是编程中事实上的标准,但请注意,有些人可能对他们的语法和拼写非常有占有欲——这不是我们的错,大佬们做错了:p(请原谅我穿上我的火焰套装)
      • @Michael:我希望你知道我们美国人是错误使用“足球”的人,美国和英语世界的每个地区都有自己的俚语、方言变化等. 另外,你要找的词是“断奶”。
      【解决方案6】:

      我是英国人,我认为正确的做法是咬紧牙关使用Color。我通常不会期望讲德语的程序员在公共 API[*] 中使用 Farbe,我也不会期望必须提供替代拼写,例如 finalizefinaliselocalization 与 @ 987654326@.

      编译器会指出任何错误,所以我认为为事物提供替代名称是错误的。想一想,它甚至可能会阻碍一些程序员,因为 IDE 自动完成将有更多需要咀嚼。如果您要使用单一拼写,那么“颜色”是 API 中的一个常见词,通常不带“u”拼写,因此以任何其他方式拼写它是一种故意的特殊性。这对任何人都没有多大帮助。

      很明显,没有绝对的论据——你可以调用你的函数method001method002,如果你愿意,代码仍然可以工作,所以相比之下Colour只是一个小怪癖。但“古怪”和“厌世”之间只有一线之隔。

      [*] 仅仅因为他发现它比Color 更具可读性,我的意思是。如果他根本不会说英语,他别无选择。

      【讨论】:

        【解决方案7】:

        作为一名澳大利亚人,我也有同样的考虑。

        在工作中,我们不使用美式拼写,主要是因为这样拼写不是我们的第二天性,所以如果我们坚持美式拼写(理论上)会花费更长的时间,因为我们总是必须这样做第二猜我们自己。这样做时,我们似乎在我们的 API 和外部美国约定样式库之间切换没有任何问题,但如果您认为可能,则需要考虑这一点。

        我相信你应该顺其自然,因为这对你来说会更容易。

        如果这意味着坚持使用您的英国拼写,请带着一丝自豪感这样做;)

        【讨论】:

          【解决方案8】:

          为什么不将您的方法名称国际化。我为此提出了两种选择。 * 将你的方法命名为“method1”、“method2”,并为不同的本地人提供不同的备忘单,这样英国人就会有method1=setColour,而在美国他们会看到method1=setColor。

          另一种选择是使用 ASM 之类的东西来重写 jar 文件中的类文件,这样对于美国人来说,方法是“setColor”,而在英国和英联邦其他国家,他们会看到“setColour”。这将消除其他人建议的重复 setColor/setColour 的需要。

          【讨论】:

            【解决方案9】:

            作为加拿大人,我的规则是在标识符中使用“颜色”,在 cmets 中使用“颜色”。例如:

            /// <summary>Return the colour in CIE Lab space.</summary>
            public GetLabColor() : double * double * double;
            

            【讨论】:

              【解决方案10】:

              出于多种原因,我一直在使用他们在一个名为 England 的小岛上使用的那些疯狂拼写:

              • 我在这里工作
              • 我所有的同事都在这里工作
              • 嗯..这是英语语言
              • 我们喜欢认为我们发明了互联网
              • 我们都认为我们仍然拥有这个庞大的帝国并统治着世界等等
              • 我们不喜欢大佬! >:(

              但是,我主要编写 C#、HTML、CSS、JS 等。我可以保持固执并使用我们自己的拼写,但所有这些语言都使用美国化的关键字和成员名称。我最终得到了一个血腥的 tosh

              在我的C#中:

              public Color BrightenColour(Color colour); // eew, minging
              

              或在我的 CSS 中:

              .greyColoured { color: gray; } /* not semantic? crikey! */
              

              或我的 jQuery

              function serialiseForm() {
                  return $('input, textarea, select').serialize() // cor' blimey!
              }
              

              或我的HTML

              <div align="center">Centre</div> <!-- goodness gracious me! -->
              

              所以,今天,我终于屈服了,对所有旧的传统拼写进行了解决方案范围的查找替换。虽然我不喜欢所有新的跨大西洋拼写,但我的代码现在干净多了:D

              理货!

              【讨论】:

              • 英格兰是一个岛屿?如果苏格兰获得独立,他们会建造一片大海,只是因为他们不想成为海角;-)
              • 你说的这个“苏格兰”是谁? ;)
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2012-02-28
              • 2018-12-30
              • 1970-01-01
              • 2010-09-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多