Go 言語は、安全性と保守性を確保するためにパラメーター検証とデータ型変換のメソッドを提供します。パラメーター検証: アサーションを使用して条件が満たされているかどうかを確認し、条件が満たされていない場合はパニックをトリガーします。無効な引数を示し、それらを返すカスタム エラー タイプ。データ型変換: strconv パッケージを使用して、文字列を他の型に明示的に変換します。型に互換性がある場合、暗黙的な型変換を自動的に実行します。これらの手法は、関数パラメーターの有効性を確保し、データ型を簡単に変換するのに役立ち、それによってコードの信頼性と保守性が向上します。
Go 言語では、安全性と保守性の性的対策のために関数のパラメータ検証とデータ型変換が重要です。このチュートリアルでは、組み込みツールとカスタム メソッドを使用してこれらの操作を効率的に実行する方法について説明します。
Go 言語にはネイティブのパラメータ検証メカニズムがありませんが、一般的な代替手段が 2 つあります:
func ValidateUser(name string, age int) { if name == "" { panic("name cannot be empty") } if age < 0 { panic("age cannot be negative") } }
type InvalidParameterError struct { param string msg string } func (e *InvalidParameterError) Error() string { return fmt.Sprintf("invalid parameter: %s - %s", e.param, e.msg) } func ValidateUser(name string, age int) error { if name == "" { return &InvalidParameterError{param: "name", msg: "cannot be empty"} } if age < 0 { return &InvalidParameterError{param: "age", msg: "cannot be negative"} } return nil }
Go 言語は、明示的および暗黙的なデータ型変換をサポートしています。
strconv
パッケージを使用します。 import "strconv" func ConvertAgeToInt(age string) (int, error) { return strconv.Atoi(age) }
func AddNumber(a, b int) int { // 隐式将 a 转换为 float64 return a + float64(b) }
ケース 1: ユーザー入力の検証
Web アプリケーションでは、から受信したものを検証する必要がある場合があります。ユーザー入力に対するフォーム。
func ValidateUserInput(name string, email string) error { if name == "" { return &InvalidParameterError{param: "name", msg: "cannot be empty"} } if _, err := mail.ParseAddress(email); err != nil { return &InvalidParameterError{param: "email", msg: "invalid email format"} } return nil }
ケース 2: データ型変換
データベースから取得したデータは文字列である可能性がありますが、処理のために他の型に変換する必要がある場合があります。
func ConvertDuration(duration string) (time.Duration, error) { duration, err := strconv.ParseInt(duration, 10, 64) if err != nil { return 0, err } return time.Duration(duration) }
これらの手法を使用すると、関数パラメーターの有効性を確保し、データを必要な型に簡単に変換できるため、コードの信頼性と保守性が向上します。
以上がGolang 関数のパラメータ検証とデータ型変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。