開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Go (プログラミング言語)
プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES) (Alan A.A. Donovan(著)、Brian W. Kernighan(著)、柴田 芳樹(翻訳)、丸善出版)の第4章(コンポジット型)、4.2(スライス)、4.2.2(スライス内での技法)、練習問題4.7の解答を求めてみる。
コード
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
bss := [][]byte{
[]byte(""),
[]byte("a"),
[]byte("ab"),
[]byte("abc"),
[]byte("日本語"),
[]byte("日a本b語c"),
}
for _, bs := range bss {
fmt.Printf("%q\n", bs)
fmt.Printf("%q\n\n", reverse(bs))
}
}
func reverse(bs []byte) []byte {
out := bs[:0]
rs := []rune(string(bs))
n := utf8.RuneCountInString(string(bs))
for i := 0; i < n; i++ {
for _, b := range []byte(string(rs[n-i-1])) {
out = append(out, b)
}
}
return out
}
入出力結果(cmd(コマンドプロンプト)、Terminal)
C:\Users\...>go run sample7.go "" "" "a" "a" "ab" "ba" "abc" "cba" "日本語" "語本日" "日a本b語c" "c語b本a日" C:\Users\...>
0 コメント:
コメントを投稿