>  기사  >  백엔드 개발  >  Go의 fmt.Fscan을 사용하여 여러 숫자를 배열로 효율적으로 스캔하려면 어떻게 해야 합니까?

Go의 fmt.Fscan을 사용하여 여러 숫자를 배열로 효율적으로 스캔하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-26 07:31:10653검색

How Can I Efficiently Scan Multiple Numbers into an Array Using Go's fmt.Fscan?

Go에서 fmt.Fscan을 사용하여 숫자를 배열로 스캔

프로그래밍에서 일반적으로 접하는 작업 중 하나는 사용자로부터 여러 숫자 입력을 읽는 것입니다. . Go 언어에서는 입력 값을 저장하는 배열 또는 슬라이스와 함께 fmt.Fscan 함수를 사용하여 이를 수행할 수 있습니다.

사용자에게 두 개의 숫자를 입력하라는 메시지가 표시되는 다음 코드 조각을 고려하세요.

numbers := make([]int, 2)
fmt.Fscan(os.Stdin, &numbers[0], &numbers[1])

개별 배열 요소(숫자[0] 및 숫자[1])의 메모리 주소를 fmt.Fscan에 대한 인수로 제공하여 다음을 수행할 수 있습니다. 입력 숫자를 효율적으로 읽고 배열에 저장합니다.

그러나 숫자를 배열 자체로 직접 스캔할 수 있는 보다 간결한 접근 방식이 필요합니다. 이를 달성하기 위해 배열 요소에 대한 포인터 조각을 생성하는 유틸리티 함수를 만들 수 있습니다.

func packAddrs(n []int) []interface{} {
    p := make([]interface{}, len(n))
    for i := range n {
        p[i] = &n[i]
    }
    return p
}

packAddrs의 결과를 fmt.Fscan에 전달하여 입력 숫자를 효과적으로 스캔할 수 있습니다. 배열:

numbers := make([]int, 2)
n, err := fmt.Fscan(os.Stdin, packAddrs(numbers)...)
fmt.Println(numbers, n, err)

이 접근 방식은 fmt.Fscan을 사용하여 여러 숫자를 배열로 읽는 더 간단하고 효율적인 방법을 제공합니다. 입력값의 개수를 미리 알 수 없을 때 특히 유용합니다.

위 내용은 Go의 fmt.Fscan을 사용하여 여러 숫자를 배열로 효율적으로 스캔하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.