更好的是,有3种方法可以获取不同的属性:
func (s *Something) GetSections() {
var sections []Section
// code to get sections and append to sections
}
func (s *Something) GetValues() {
var values []Value
// code to get values and append to values
}
func (s *Something) GetKeys() {
var keys []Key
// code to get keys and append to keys
}
或一种接收应得到的信息的方法:
func (s *Something) GetProperties(propertyName string) {
// code to get the desire property.
}
我在这里谈论的最佳实践涉及创建一种方法来访问结构的内部数据。
我不确定这是否是基于意见的问题,如果可以,我很乐意将其删除。
答案 0 :(得分:3)
使用第二个属性的唯一原因是,如果仅在运行时知道该属性。然后就有一个合理的理由来解析名称并根据名称选择值。
但是,由于您建议第一个选项是一个选项,因此选择该选项。它防止您在不必要的地方使用条件逻辑。否则,您必须严格处理propertyName
不是有效选项的情况;在不应该存在的地方引入可能的错误。
并且如注释中所建议,吸气剂的idiomatic名称不含Get
。因此,Sections()
而不是GetSections()
。