開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Go (プログラミング言語)
について、mapに順序がないことを利用して、さらにもう少し短くしてみた。ヌジョレーボーボー、Go で少し短くできるな。https://t.co/I3icVPtUOW
— mattn (@mattn_jp) November 23, 2019
コード
package main
import "fmt"
func main() {
a := map[int]string{0: "ボ", 1: "ジョ", 2: "レ", 3: "ヌ", 4: "ボ"}
s := []interface{}{}
for _, v := range a {
s = append(s, v)
}
fmt.Printf("%s%s%sー%sー%sー\n", s...)
}
入出力結果(Zsh、cmd.exe(コマンドプロンプト)、Terminal)
% go run ./sample.go
ボボジョーレーヌー
% go run ./sample.go
ヌボボージョーレー
% go run ./sample.go
ボジョレーヌーボー
% go run ./sample.go
レヌボーボージョー
% go run ./sample.go
ジョレヌーボーボー
% go build sample.go
% ./sample
ボジョレーヌーボー
% ./sample
ヌボボージョーレー
% ./sample
ボジョレーヌーボー
% ./sample
ボジョレーヌーボー
% ./sample
ヌボボージョーレー
%
ただ、この方法だと今のところ順序が決まってないからランダムな出力になるけど、今後、順序が一定の方が効率がいい、そういうアルゴリズムが発見されたという理由とか、仕様上、順序が不定ということで一定でも良いいとかいう理由で実装が変更になったら、math/randパッケージを使用した場合と違って出力が一定になってしまうかも。
0 コメント:
コメントを投稿