Werden in einer Go-Template-Range-Schleife Variablen, die außerhalb der Schleife deklariert sind, bei jeder Iteration zurückgesetzt?

Ich versuche, eine Variable zu verwenden, die außerhalb einer Go-Vorlagenbereichsschleife deklariert wurde, um festzustellen, ob der vorherige Beitrag am selben Tag wie der aktuelle Beitrag aufgetreten ist. Hier ist ein vereinfachtes Beispiel.

Wo.Posts ist ein Array von Post-Strukturen, die jeweils ein @ habe.Content und ein.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 }}

Das Problem ist, dass$prevDate scheint auf @ zurückgesetzt zu se"" am Anfang jeder Iteration der Schleife.

Kann mir jemand helfen, zu verstehen, warum der Wert von$prevDate wird bei jeder Iteration zurückgesetzt und schlägt möglicherweise einen Weg vor, um das zu erreichen, was ich hier zu tun versuche?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage