앞에 0이 있는 정수 인수는 flag.IntVar 또는 flag.Int에 의해 8진수로 구문 분석됩니다.

王林
풀어 주다: 2024-02-08 21:10:08
앞으로
576명이 탐색했습니다.

带有前导零的整数参数由 flag.IntVar 或 flag.Int 解析为八进制

php 편집기 Yuzai가 소개했습니다. Go 언어에서는 명령줄 매개변수를 플래그 패키지를 통해 구문 분석할 수 있습니다. flag.IntVar 또는 flag.Int를 사용하여 앞에 0이 있는 정수 인수를 구문 분석하면 이를 8진수로 구문 분석합니다. 즉, 명령줄에 0으로 시작하는 정수 인수를 입력하면 10진수가 아닌 8진수로 구문 분석됩니다. 때로는 인수를 8진수 대신 10진수로 처리하고 싶을 수도 있기 때문에 이는 주의해야 할 사항입니다. 따라서 플래그 패키지를 사용하여 매개변수를 구문 분석할 때 선행 0이 있는 정수 매개변수를 구문 분석하는 방법에 특별한 주의를 기울여야 합니다.

질문 내용


다음 코드를 작성했습니다:

으아악

이 명령을 실행할 때:

으아악

출력이 정확합니다.

하지만 010 运行它,golang 会将 010 解析为八进制(010 == 8)을 사용한다면 왜 그럴까요?

으아악

이거 버그인가요?


Solution


오, 이건 끔찍한 함정이군요.

이거 버그인가요?

2011년 Go 1.0.0 이전에 의도적으로 추가되었습니다. p> 플래그: 16진수 및 8진수 정수 플래그를 입력할 수 있습니다.

문서화된 플래그의 사용법보다는

strconv.ParseInt 문서에서 전체 동작을 찾을 수 있습니다. strconv.ParseInt 的文档中找到完整的行为,而不是它的flag

위 내용은 앞에 0이 있는 정수 인수는 flag.IntVar 또는 flag.Int에 의해 8진수로 구문 분석됩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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