- 2.2.1. 上下文是关键
2.2.1. 上下文是关键
重要的是要意识到关于命名的大多数建议都是需要考虑上下文的。 我想说这是一个原则,而不是一个规则。
两个标识符 i
和 index
之间有什么区别。 我们不能断定一个就比另一个好,例如
for index := 0; index < len(s); index++ {
//
}
从根本上说,上面的代码更具有可读性
for i := 0; i < len(s); i++ {
//
}
我认为它不是,因为就此事而论, i
和 index
的范围很大可能上仅限于 for 循环的主体,后者的额外冗长性(指 index
)几乎没有增加对于程序的理解。
但是,哪些功能更具可读性?
func (s *SNMP) Fetch(oid []int, index int) (int, error)
或
func (s *SNMP) Fetch(o []int, i int) (int, error)
在此示例中,oid
是 SNMP
对象 ID
的缩写,因此将其缩短为 o
意味着程序员必须要将文档中常用符号转换为代码中较短的符号。 类似地将 index
替换成 i
,模糊了 i
所代表的含义,因为在 SNMP
消息中,每个 OID
的子值称为索引。
贴士: 在同一声明中长和短形式的参数不能混搭。