> 백엔드 개발 > Golang > Go에서 공백 식별자의 비밀 이해하기

Go에서 공백 식별자의 비밀 이해하기

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

공백 식별자는 Go 언어에서 변수나 값을 배치하거나 무시하는 데 사용되며 구문은 _입니다. 함수에서 불필요한 변수, 자리 표시자, 여러 개의 반환 값이 있는 변수를 삭제하는 데 사용할 수 있습니다. 실제로는 스캐너 오류를 무시하는 등 원치 않는 스캔 결과를 건너뛰는 데 사용할 수 있습니다.

理解 Go 语言中空白标识符的奥妙

Go 언어에서 공백 식별자의 비밀을 이해하세요

소개

공백 식별자는 특정 변수나 값을 배치하거나 무시하는 데 사용되는 Go 언어의 특수한 유형의 식별자입니다. 눈에 띄지 않는 것처럼 보일 수도 있지만 공백 식별자는 특정 시나리오에서 도움이 될 수 있습니다.

구문

공백 식별자는 키워드 _로 표시됩니다. 지역 변수나 함수 매개변수 이름으로만 사용할 수 있습니다.

func foo(_ int) {}
func main() {
    var _ = 10
}
로그인 후 복사

사용 사례

불필요한 변수 삭제

변수를 선언해야 하지만 실제로 해당 값을 사용하지 않는 경우 공백 식별자를 사용하여 컴파일러 경고를 피할 수 있습니다.

func foo(x int) {
    if x > 10 {
        _ = fmt.Println("x is greater than 10")
    }
}
로그인 후 복사

Placeholder

빈 식별자를 사용하여 나중에 값이 사용되지 않음을 나타내는 자리 표시자를 만들 수 있습니다.

func foo() (int, int) {
    // 假设 a 和 b 的值稍后会计算出来
    return _, _
}
로그인 후 복사

여러 반환 값이 있는 함수의 변수

함수 반환 값이 무시되면 빈 식별자를 변수 이름으로 사용할 수 있습니다.

func foo() (int, error) {
    x, _ := bar()
    return x, nil // 忽略错误
}
로그인 후 복사

실용 사례

원치 않는 스캔 결과 건너뛰기

입력된 숫자를 스캔하는 다음 코드가 있다고 가정해 보겠습니다.

package main

import (
    "fmt"
    "strings"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    for scanner.Scan() {
        line := scanner.Text()
        if num, err := strconv.Atoi(line); err == nil {
            fmt.Printf("有效数字:%d\n", num)
        }
    }

    if err := scanner.Err(); err != nil {
        fmt.Println("读取输入时出错:", err)
    }
}
로그인 후 복사

이 예에서는 스캔 서버 오류를 처리하지 않고 유효한 숫자만 인쇄하려고 합니다. 공백 식별자를 사용하여 오류를 무시할 수 있습니다:

package main

import (
    "bufio"
    "fmt"
    "os"
    "strconv"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    for scanner.Scan() {
        line := scanner.Text()
        if num, _ := strconv.Atoi(line); err == nil {
            fmt.Printf("有效数字:%d\n", num)
        }
    }
    _ = scanner.Err() // 忽略扫描器错误
}
로그인 후 복사

위 내용은 Go에서 공백 식별자의 비밀 이해하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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