다음 코드에서는 string
룬을 룬으로 반복하지만 실제로 체크섬 계산을 수행하려면 int
이 필요합니다. rune
을 []byte
으로 인코딩 한 다음 string
으로 변환 한 다음 Atoi
을 사용하여 rune
에서 int
을 얻으시겠습니까? 이것은 그것을하는 관용구적인 방법입니까? 놀이터에 룬을 int로 변환 하시겠습니까?
// The string `s` only contains digits.
var factor int
for i, c := range s[:12] {
if i % 2 == 0 {
factor = 1
} else {
factor = 3
}
buf := make([]byte, 1)
_ = utf8.EncodeRune(buf, c)
value, _ := strconv.Atoi(string(buf))
sum += value * factor
}
:
http://play.golang.org/p/noWDYjn5rJ
고마워요,하지만 그건 내가 원하는 것만은 아닙니다. 내 ASCII 테이블에 따라'*'문자를 생성하는 룬을 42로 초기화하고 있습니다. 내가 얻는 것은 문자열이고 '범위'는 문자를 나타내는 룬 문자입니다. 룬에 int를 사용하면 표시 값이 아니라 표시 값이됩니다. 차이점을 암시하는 짧은 발췌 문장을 만들었습니다. http://play.golang.org/p/JLlmKnddGv – miku
@miku : 내 수정 된 답변을 참조하십시오. – peterSO
아, 좋은 속임수. 나는 왜 당신의 대답이 downvoted 모르겠어요. – miku