Go에서 숫자를 조각으로 스캔
Go의 표준 입력에서 여러 숫자를 읽을 때 개별 변수에 값을 할당할 수 있습니다.
numbers := make([]int, 2) fmt.Fscan(os.Stdin, &numbers[0], &numbers[1])
그러나 프로세스를 단순화하고 슬라이스로 직접 읽어들이는 것이 좋습니다. fmt 패키지는 슬라이스 스캔을 지원하지 않지만 다음 유틸리티 함수가 도움이 될 수 있습니다.
func packAddrs(n []int) []interface{} { p := make([]interface{}, len(n)) for i := range n { p[i] = &n[i] } return p }
이 함수는 입력 슬라이스의 각 요소에 대한 주소 슬라이스를 생성합니다. 이 기능을 사용하면 다음과 같은 슬라이스로 스캔할 수 있습니다.
numbers := make([]int, 2) n, err := fmt.Fscan(os.Stdin, packAddrs(numbers)...) fmt.Println(numbers, n, err)
fmt.Sscan()으로 테스트:
numbers := make([]int, 5) n, err := fmt.Sscan("1 3 5 7 9", packAddrs(numbers)...) fmt.Println(numbers, n, err)
출력:
[1 3 5 7 9] 5 <nil>
위 내용은 Go에서 여러 숫자를 효율적으로 조각으로 스캔하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!