假设您正在使用一个函数,该函数返回关于用户上个月是否处于 Activity 状态的 bool 值。
在Ruby中:
def active_in_last_month?;end
在C#中
public bool WasActiveInLastMonth(){}
在Go中命名 bool 谓词函数的惯用方式是什么?
最佳答案
tl;博士
func wasActiveInLastMonth() bool
完整答案
我查看了一些著名的开源项目的GitHub存储库,选择了一个半随机文件,然后发现了以下内容:
等租赁/lessor.go
func (le *lessor) isPrimary() bool
Kubernetes服务/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
领事代理/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
我要说的是,这四个项目代表了现有的一些审查最完善,最著名的go代码。似乎is/has模式非常流行,尽管不是唯一的模式。如果您选择这种模式,那么您一定可以捍卫您的选择,因为它是事实成语。
关于以惯用的方式命名 bool 谓词函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20935005/