Go의 html/template 패키지에서 전역 변수를 생성할 때 범위 제한을 이해하는 것이 중요합니다. 패키지 문서에 따라 템플릿에 정의된 변수는 선언된 제어 구조(예: if, with, range)의 끝까지 확장되는 제한된 범위를 갖습니다.
다음 HTML/템플릿 코드를 고려하세요.
{{if .UserData}} {{$currentUserId := .UserData.UserId}} [<a href="#ask_question">Inside {{$currentUserId}}</a>] {{else}} {{$currentUserId := 0}} {{end}} [<a href="#ask_question">outside {{$currentUserId}}</a>]
이 코드는 if 블록 내부에 현재 사용자 ID를 표시하고 블록 외부에 0을 표시하는 것을 목표로 합니다. 그러나 $currentUserId의 제한된 범위로 인해 결과는 두 위치 모두 0으로 표시됩니다.
Go 1.11에서는 템플릿 변수 값 수정에 대한 지원을 도입했습니다. 변수를 초기화하려면 다음과 같이 :=를 사용하세요.
{{$currentUserId := 0}}
값을 업데이트하려면 다음과 같이 =를 사용하세요.
{{$currentUserId = .UserData.UserId}}
if 블록 외부에 정의된 변수를 수정합니다. , 변경 사항은 블록 내부와 외부 모두에서 액세스할 수 있습니다.
전역 변수 수정이 적합하지 않은 경우 다음 대안을 고려하세요.
이러한 솔루션을 활용하면 Go의 html/템플릿 패키지에서 전역 변수를 생성 및 수정하여 적절한 변수 범위를 지정하고 원하는 기능을 얻을 수 있습니다. 템플릿.
위 내용은 Go HTML 템플릿에서 전역 변수 범위를 효과적으로 관리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!