任意の 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 を使ってるから、たぶんすごく遅いんだろうなぁ