我想知道是否有针对保护(断言)功能的golang命名约定?我用谷歌搜索了一下,但找不到任何确定的东西。我已经读过" The Go Programming Language"预订使用'必须'前缀是一种常见做法。
我需要的功能示例:
package main
func divide(a, b int) int {
mustNotBeZero(b)
return a / b
}
func mustNotBeZero(n int) {
if n == 0 {
panic("cannot divide by zero")
}
}
func main() {
println(divide(5, 0))
}
答案 0 :(得分:2)
这不是任何约定的“部分”,但standard library也使用date
函数,因此如果你真的需要它,这是一个很好的模式。
示例:
导出:
func MustCompile(str string) *Regexp
func Must(t *Template, err error) *Template
src/syscall/dll_windows.go
:(在Windows上)
branch_id
MustXX()
未导出:
src/cmd/go/go_test.go
:
func MustLoadDLL(name string) *DLL
func (d *DLL) MustFindProc(name string) *Proc
func (tg *testgoData) must(err error)
src/encoding/xml/xml.go
:
func (tg *testgoData) mustExist(path string)
src/fmt/scan.go
:
func (tg *testgoData) mustNotExist(path string)
src/reflect/value.go
:
func (d *Decoder) mustgetc() (b byte, ok bool)
func (s *ss) mustReadRune() (r rune)
func (f flag) mustBe(expected Kind)
src/syscall/dll_windows.go
:
func (f flag) mustBeExported()
func (f flag) mustBeAssignable()