Checkers
go
type CheckFunc func(ctx CheckerContext) *ErrContext
var Checkers map[string]CheckFuncCheckers map はルール名をキーとする バリデーション関数の登録レ ジストリ です。組み込みエントリ:
go
var Checkers = map[string]CheckFunc{
"required": required,
"min": min,
"max": max,
"minlen": minlen,
"maxlen": maxlen,
"alpha": alpha,
"alphanumeric": alphaNumeric,
"alphadash": alphaDash,
"username": userName,
"email": email,
"ipv4": ipv4,
"mobile": mobile,
"tel": tel,
"phone": phone,
"idcard": idCard,
"equal": equal,
"list": list,
}ルールごとの意味は 組み込みチェッカー を参照。
チェッカーを追加する
go
govalid.Checkers["myRule"] = func(c govalid.CheckerContext) *govalid.ErrContext {
// ...
return nil
}チェッカーを差し替える
構文は同じ——既存のキーへの代入で組み込みを上書きします:
go
govalid.Checkers["required"] = func(c govalid.CheckerContext) *govalid.ErrContext {
// 組み込みのセマンティクスを上書き
return nil
}チェッカーを削除する
go
delete(govalid.Checkers, "idcard")構造体タグ内で削除済みルールへの参照は実行時に MakeCheckerNotFoundError を起こします。
並行性
map 自体は書き込みに対して同期されていません。プログラム起動時に 1 度書き換え、リクエスト処理中は触らないでください。複数 goroutine からの読み込みは、書き手がいない限り標準的な Go map の契約のもと で安全です。