让我们假设您正在使用一个函数来返回一个bool,告知用户上个月是否处于活动状态。
在Ruby中:
def active_in_last_month?;end
在C#中
public bool WasActiveInLastMonth(){}
在Go中命名布尔谓词函数的惯用方法是什么?
答案 0 :(得分:1)
<强> TL;博士强>
func wasActiveInLastMonth() bool
完整答案
我查看了一些着名的开源项目的GitHub存储库,选择了一个半随机文件,并找到了以下内容:
Etcd lease / lessor.go
func (le *lessor) isPrimary() bool
Kubernetes service / service_controller.go
func (s *ServiceController) needsUpdate(oldService *v1.Service, newService *v1.Service) bool
func portsEqualForLB(x, y *v1.Service) bool
func portSlicesEqualForLB(x, y []*v1.ServicePort) bool
Consul agent / acl.go
func (m *aclManager) isDisabled() bool
Docker Moby(Docker上游的开源)cli / cobra.go
func hasSubCommands(cmd *cobra.Command) bool
func hasManagementSubCommands(cmd *cobra.Command) bool
我想说这四个项目代表了一些现存最好的评论和着名的代码。似乎is / has模式非常普遍,尽管不是唯一的模式。如果你选择这种模式,你肯定能够捍卫你的选择作为事实上的习语。
答案 1 :(得分:0)
仅访问或修改类型内部值的函数称为getter和setter。但是,在命名getter方法时,我们通常会省略Get前缀。此简称首选项不仅适用于所有方法,还适用于其他还原剂前缀,例如Fetch,Find和Lookup
根据这个建议,我会将函数命名为“LastMonth”或“lastMonth”,如果它是私有的,则跳过前缀