2017-10-10 68 views
-3

我有一些地圖。 (點符號),我想只打印每個鍵。 我知道我們可以使用一些:從Golang模板中獲取所有鑰匙而不使用增值服務

{{ range $key, $value := . }}{{ $key }}{{end}} 

但我不能使用VAR,因爲我使用泊塢撰寫文件,該文件的問題withi符號$。

如何在不使用變量的情況下打印所有鑰匙?

回答

1

提取鍵並對它們進行排序,然後將它們饋送到視圖中,因爲無論如何迭代映射都具有不確定的順序(您不需要)。

import "sort" 

var m map[int]string 
var keys []int 
for k := range m { 
    keys = append(keys, k) 
} 
sort.Ints(keys) 

在範圍循環中,使用。參考正在排列的項目。爲該循環創建新的上下文。

{{ range . }} 
    {{ . }} 
{{ end }} 

但是,我建議你使用符號$解決問題,你會想要使用它。這聽起來像是對Docker Compose文件的錯誤使用 - 您可以將golang模板放入單獨的文件中,或者如果您希望進行單個二進制部署,則可以將它們放入go源文件本身。

+0

謝謝,我已經讚揚上面的排序鍵首先得到可預見的順序了。 –

相關問題