En un bucle de rango de plantilla Go, ¿se declaran las variables fuera del reinicio del bucle en cada iteración?

Estoy tratando de usar una variable declarada fuera de un bucle de rango de plantilla Go para ver si la publicación anterior se produjo el mismo día que la publicación actual. Aquí hay un ejemplo simplificado.

Dónde.Posts es una matriz de estructuras de publicaciones que tienen.Content y un.Date.

{{ $prevDate := "" }}
{{ range $post := .Posts }}
    {{ if ne $prevDate $post.Date }}
        <div class="post-date">Posts dated: {{ $post.Date }}</div>
    {{ end }}
    <div class="post-content">{{ $post.Content }}</div>
    {{ $prevDate := $post.Date }}
{{ end }}

El problema es ese$prevDate parece restablecerse a"" al comienzo de cada iteración del bucle.

¿Alguien puede ayudarme a entender por qué el valor de$prevDate se restablece en cada iteración y quizás sugiera una forma de lograr lo que estoy tratando de hacer aquí?

Respuestas a la pregunta(2)

Su respuesta a la pregunta