2019年11月23日土曜日

開発環境

について、mapに順序がないことを利用して、さらにもう少し短くしてみた。

コード

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 コメント:

コメントを投稿