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