Skip to content

Checkers

go
type CheckFunc func(ctx CheckerContext) *ErrContext

var Checkers map[string]CheckFunc

Checkers 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 の契約のもと で安全です。

MIT ライセンスのもとで公開されています。