Используя следующее в качестве отправной точки, я смог получить что-то работающее.
Как вставить символ каждые X символов в строку в Golang?
Но Я хочу знать, есть ли идиоматический c способ написать golang для того, что я хочу сделать, что является выводом первого fmt.Println, показанного ниже:
package main
import (
"bytes"
"fmt"
)
func insertStringInto(s string, interval int, sep string) string {
var buffer bytes.Buffer
before := interval - 1
last := len(s) - 1
for i, char := range s {
buffer.WriteRune(char)
if i%interval == before && i != last {
buffer.WriteString(sep)
}
}
return buffer.String()
}
func main() {
fmt.Println("0x" + insertStringInto("01234567891011121314151617181920", 2, ", 0x"))
fmt.Println(insertStringInto("01234567891011121314151617181920", 2, ", 0x"))
}
Производит следующее:
0x01, 0x23, 0x45, 0x67, 0x89, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x20
01, 0x23, 0x45, 0x67, 0x89, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x20
Ссылка на игру. golang .org ниже:
https://play.golang.org/p/TvLFAKsrcCB