假设您正在使用一个函数,该函数返回关于用户上个月是否处于 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/

10-12 00:31
查看更多