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 블록 외부에 정의된 변수를 수정하면 if 블록 내부와 외부 모두에서 변경 사항에 액세스할 수 있습니다. block.
전역 변수 수정이 적합하지 않은 경우 다음 대안을 고려하십시오.
이러한 솔루션을 활용하면 Go의 html/템플릿 패키지에서 전역 변수를 생성 및 수정할 수 있으며, 적절한 변수 범위 지정을 보장하고 원하는 기능을 얻을 수 있습니다. 템플릿.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3