Go 언어는 안전성과 유지 관리성을 보장하기 위해 매개변수 확인 및 데이터 유형 변환을 위한 방법을 제공합니다. 매개변수 확인: 조건이 충족되는지 확인하고 그렇지 않으면 패닉을 유발하는 어설션을 사용합니다. 잘못된 매개변수를 표시하고 반환하는 사용자 정의 오류 유형입니다. 데이터 유형 변환: 문자열을 다른 유형으로 명시적으로 변환하려면 strconv 패키지를 사용하십시오. 유형이 호환되면 암시적 유형 변환을 자동으로 수행합니다. 이러한 기술은 함수 매개변수의 유효성을 보장하고 데이터 유형을 쉽게 변환하여 코드의 안정성과 유지 관리성을 향상시키는 데 도움이 됩니다.
Go 언어에서 함수 매개변수 확인 및 데이터 유형 변환은 중요한 보안 및 유지 관리 조치입니다. 이 튜토리얼에서는 기본 제공 도구와 사용자 정의 방법을 사용하여 이러한 작업을 효율적으로 수행하는 방법을 안내합니다.
Go 언어는 기본 매개변수 유효성 검사 메커니즘을 제공하지 않지만 두 가지 일반적인 대안이 있습니다.
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: 사용자 입력 유효성 검사
웹 애플리케이션에서는 양식에서 받은 사용자 입력의 유효성을 검사해야 할 수도 있습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!