Ir modelo remover a última vírgula no loop de intervalo

Eu tenho um código como este:

package main

import (
    "text/template"
    "os"
)

func main() {
    type Map map[string]string
    m := Map {
        "a": "b",
        "c": "d",
    }
    const temp = `{{range $key, $value := $}}key:{{$key}} value:{{$value}},{{end}}`
    t := template.Must(template.New("example").Parse(temp))
    t.Execute(os.Stdout, m)
}

ele produzirá:

chave: a value: b, chave: c value: d,

mas eu quero algo assim:

chave: um valor: b, chave: valor c: d

Não preciso da última vírgula, como removê-la. Encontrei uma solução para fazer um loop em uma matriz aqui:https://groups.google.com/d/msg/golang-nuts/XBScetK-guk/Bh7ZFz6R3wQJ , mas não consigo obter o índice de um mapa.

questionAnswers(2)

yourAnswerToTheQuestion