golang에서 문자열을 정수로 변환하는 방법

青灯夜游
풀어 주다: 2023-01-05 11:44:22
원래의
5579명이 탐색했습니다.

변환 방법: 1. Atoi()를 사용하여 문자열 유형 정수를 int 유형으로 변환합니다. 구문은 "strconv.Atoi(str)"입니다. 2. ParseInt()를 사용하여 문자열을 정수 값으로 변환합니다. 양수 및 음수 기호, "strconv.ParseInt(str,10,64)" 구문; 3. ParseUnit()을 사용하여 문자열을 정수 값으로 변환하고 양수 및 음수 기호를 허용하지 않습니다. 구문 "strconv.ParseUint( str,10,64)”.

golang에서 문자열을 정수로 변환하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.

Go 언어의 strconv 패키지는 기본 데이터 유형과 문자열 표현 간의 상호 변환을 구현합니다.

strconv 패키지는 기본 데이터 유형 및 해당 문자열 표현의 변환을 구현합니다. 여기에는 주로 일반적으로 사용되는 Atoi(), Itia(), 구문 분석 시리즈, 형식 시리즈 및 추가 시리즈가 포함됩니다.

다음은 문자열을 정수로 변환하는 여러 함수를 소개합니다.

Atoi()

Atoi() 함수는 문자열 유형의 정수를 int 유형으로 변환하는 데 사용됩니다.

func Atoi(s string) (i int, err error)
로그인 후 복사

들어오는 문자열 매개변수를 int 유형으로 변환할 수 없는 경우 오류가 반환됩니다.

package main

import "fmt"
import "strconv"

func main() {
   s1 := "100"
      i, err := strconv.Atoi(s1)
   if err != nil {
      fmt.Println("can't convert to int")
   } else {
      fmt.Printf("type:%T value:%#v\n", i, i) //type:int value:100
   }
}
로그인 후 복사

golang에서 문자열을 정수로 변환하는 방법

Parse 시리즈 함수

Parse 클래스 함수는 문자열을 특정 유형의 값(ParseBool(), ParseFloat(), ParseInt(), ParseUint()))으로 변환하는 데 사용됩니다. 그 중 ParseInt()와 ParseUnit()은 문자열을 정수로 변환하는 데 사용됩니다.

ParseInt()

ParseInt()는 문자열을 숫자로 변환하는 함수입니다.

func ParseInt(s string, base int, bitSize int) (i int64, err error)
로그인 후 복사

양수 및 음수 기호를 허용하여 문자열이 나타내는 정수 값을 반환합니다.

  • base는 진수(2~36)를 지정합니다. base가 0이면 문자열의 접두사로 판단됩니다. "0x"는 16진수이고, 그렇지 않으면 10진수입니다.

    bitSize는 결과가 오버플로 없이 할당되어야 하는 정수 유형을 지정합니다. 0, 8, 16, 32 및 64는 각각 int, int8, int16, int32 및 int64를 나타냅니다.
  • 반환된 오류는 *NumErr 유형입니다. . 구문이 올바르지 않으면 err.Error = ErrSyntax이고, 결과가 유형 범위를 초과하면 err.Error = ErrRange입니다.
  • ParseUnit()

func ParseUint(s string, base int, bitSize int) (n uint64, err error)
로그인 후 복사
ParseUint는 ParseInt와 유사하지만 부호를 허용하지 않으며 부호 없는 정수에 사용됩니다.

예:

package main

import "fmt"
import "strconv"

func main() {
	i, err1 := strconv.ParseInt("-2", 10, 64)
	u, err2 := strconv.ParseUint("2", 10, 64)
	if err1 != nil {
      fmt.Println("can't convert to int")
    } else {
      fmt.Printf("type:%T value:%#v\n", i, i) //type:int64 value:2
    }
	if err2 != nil {
      fmt.Println("can't convert to int")
    } else {
      fmt.Printf("type:%T value:%#v\n", u, u) //type:uint64 value:0x2
    }
}
로그인 후 복사

ParseInt() 및 ParseUnit() 함수에는 모두 두 개의 반환 값이 있습니다. 첫 번째 반환 값은 변환된 값이고 두 번째 반환 값은 변환 실패에 대한 오류 메시지입니다. golang에서 문자열을 정수로 변환하는 방법

확장된 지식: go의 정수

Go 언어는 int8, int16, int32 및 int64를 포함하여 부호 있는 정수 유형과 부호 없는 정수 유형을 모두 제공하며 크기는 완전히 다른 8, 16에 해당합니다. , 32 및 64비트(이진 비트) 크기이며 각각 uint8, uint16, uint32 및 uint64의 4가지 부호 없는 정수 유형에 해당합니다.

또한 특정 CPU 플랫폼의 단어 길이(머신어 크기)에 각각 해당하는 int와 uint라는 두 가지 정수 유형이 있습니다. Int는 가장 널리 사용되는 부호 있는 정수를 나타내고 uint는 부호 없는 정수. 실제 개발에서는 컴파일러와 컴퓨터 하드웨어의 차이로 인해 int와 uint가 나타낼 수 있는 정수 크기가 32비트 또는 64비트 사이에서 달라집니다.

대부분의 경우 루프 카운터(루프 수를 제어하는 ​​for 루프의 변수), 배열 및 슬라이스에 대한 인덱스, 범용 정수 연산자(보통 int)에 사용할 수 있는 정수 유형만 필요합니다. type은 처리 속도도 가장 빠릅니다.

유니코드 문자를 나타내는 데 사용되는 룬 유형은 int32 유형과 동일하며 일반적으로 유니코드 코드 포인트를 나타내는 데 사용됩니다. 두 이름은 서로 바꿔서 사용할 수 있습니다. 마찬가지로 byte와 uint8도 동일한 유형입니다. 바이트 유형은 일반적으로 값이 작은 정수가 아닌 원시 데이터임을 강조하기 위해 사용됩니다.

마지막으로 특정 비트 크기를 지정하지 않지만 포인터를 수용할 수 있을 만큼 큰 부호 없는 정수 유형 uintptr이 있습니다. uintptr 유형은 낮은 수준의 프로그래밍에만 필요하며, 특히 Go 언어가 C 언어 함수 라이브러리 또는 운영 체제 인터페이스와 상호 작용하는 경우에는 더욱 그렇습니다.

int, uint 및 uintptr의 크기는 일부 특정 운영 환경에서 동일할 수 있지만 int 및 int32와 같이 여전히 다른 유형입니다. 변환이 필요한 경우 int 유형의 크기도 32비트일 수 있습니다. int 유형은 int32 유형으로 사용될 때 명시적으로 변환되어야 하며 그 반대의 경우도 마찬가지입니다.

Go 언어의 부호 있는 정수는 2의 보수 형식으로 표현됩니다. 즉, 가장 높은 비트가 부호 비트를 나타내는 데 사용됩니다. n 비트 부호 있는 숫자의 값 범위는 -2(n-1)부터 2입니다. (n-1)-1. 부호 없는 정수의 모든 비트는 음수가 아닌 숫자를 나타내는 데 사용되며 값 범위는 0에서 2n-1입니다. 예를 들어 int8 유형 정수의 범위는 -128부터 127까지이고 uint8 유형 정수의 범위는 0부터 255까지입니다.

【관련 추천: Go 비디오 튜토리얼, 프로그래밍 교육

위 내용은 golang에서 문자열을 정수로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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