我正在编写一个公开此功能的程序包:

func Marshal(input interface{}) ([]byte, error)

在大多数情况下都可以,但是如果有其他选择,我还想证明另一个功能:
type MarshalOptions struct {
    OnlyStdClass bool
}

我的第一个想法是创建另一个函数:
func MarshalWithOptions(input interface{}, options MarshalOptions) ([]byte, error)

这是推荐的方法吗?是否有功能的标准命名约定,该约定还提供带有选项的更特定版本?

最佳答案

您可以采用*MarshalOptions。然后,如果调用者需要默认行为,则可以传递nil

例如。func Marshal(input interface{}, options *MarshalOptions) ([]byte, error)

09-27 20:41