標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

任意の map[string]~ のキーを全部配列( []string )化してソート

map のキーは文字列限定だが、値については任意の型 Ok

import (
    "reflect"
    "sort"
)

// SortedKeys makes sorted strings' array from keys of the given map whose key's type is string.
func SortedKeys(mapInt interface{}) []string {
    values := reflect.ValueOf(mapInt).MapKeys()
    result := make([]string, len(values))
    for i, value1 := range values {
        result[i] = value1.String()
    }
    sort.Strings(result)
    return result
}

こんな感じで使う

 for _, key := range texts.SortedKeys(BoolOptions) {
        val := BoolOptions[key]

reflect を使ってるから、たぶんすごく遅いんだろうなぁ