我正在编写一个公开此功能的程序包:
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)