Golang 함수 매개변수 검증 및 데이터 유형 변환

WBOY
풀어 주다: 2024-04-13 13:54:02
원래의
441명이 탐색했습니다.

Go 언어는 안전성과 유지 관리성을 보장하기 위해 매개변수 확인 및 데이터 유형 변환을 위한 방법을 제공합니다. 매개변수 확인: 조건이 충족되는지 확인하고 그렇지 않으면 패닉을 유발하는 어설션을 사용합니다. 잘못된 매개변수를 표시하고 반환하는 사용자 정의 오류 유형입니다. 데이터 유형 변환: 문자열을 다른 유형으로 명시적으로 변환하려면 strconv 패키지를 사용하십시오. 유형이 호환되면 암시적 유형 변환을 자동으로 수행합니다. 이러한 기술은 함수 매개변수의 유효성을 보장하고 데이터 유형을 쉽게 변환하여 코드의 안정성과 유지 관리성을 향상시키는 데 도움이 됩니다.

Golang 함수 매개변수 검증 및 데이터 유형 변환

Go 언어 함수 매개변수 확인 및 데이터 유형 변환

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿