【问题标题】:What does the "k" stand for in Cocoa constant names [duplicate]Cocoa常量名称中的“k”代表什么[重复]
【发布时间】:2012-01-30 13:43:06
【问题描述】:

可能重复:
What does the 'k' prefix indicate in Apple's APIs?
Objective C - Why do constants start with k

例如,result codes defined for Audio Format Services:

  • kAudioFormatUnspecifiedError
  • kAudioFormatUnsupportedPropertyError
  • 等等……

前面的 k 代表什么?我一直假设为键,因为此类常量通常用作字典中的键,但这些结果代码是常量只是返回值的示例,而不是(据 API 的客户端可以确定)键。

【问题讨论】:

标签: c cocoa


【解决方案1】:

我想它只是代表 'k'onstant,其中使用了 'k' 因为 'c' 已经常用来表示 class 或匈牙利符号 character

这种用法有历史先例;早期的袖珍计算器使用“k”表示恒定模式= 的重复操作重复了最后一次操作),因为“c”用于clear

【讨论】:

  • 这对我来说总是感觉不对劲,在 2020 年更是如此,但感谢您的解释。看起来有些人无法摆脱这个习惯
【解决方案2】:

你可以找到答案here

回答一个

常量名称(#defines、枚举、常量局部变量等)应以 小写 k 然后使用混合大小写来分隔单词,即 kInvalidHandle,kWritePerm。

虽然写起来很痛苦,但它们对于保留我们的代码绝对至关重要 可读。以下规则描述了您应该评论的内容和 在哪里。但请记住:虽然 cmets 非常重要,但最好的代码 是自我记录的。为类型和变量赋予合理的名称是 比使用晦涩的名字然后试图解释它们要好得多 通过 cmets。

但它已在文档的实时版本中被删除。它 应该注意的是,它违反了官方编码指南 来自 Apple 的 Cocoa。

Cocoa coding guidelines

【讨论】:

  • 这解释了 where 'k' 的使用,但不是它具体“代表”什么。这个问题表明他知道它用于常量,但不知道它代表 'k'onstant,或者为什么。
【解决方案3】:

这是 Apple 使用 pascal 时遗留下来的编码标准。 K 是前缀,而不是其他 C 语言的全部大写。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 2011-11-16
    • 2011-03-19
    相关资源
    最近更新 更多