Go 템플릿 사용: 전역 변수 생성 및 수정
Go 템플릿은 동적 HTML 생성을 위해 재사용 가능한 코드 조각을 생성하는 편리한 기능을 제공합니다. 템플릿 작업 시 직면하게 되는 일반적인 문제 중 하나는 템플릿의 다양한 섹션에서 전역 변수를 정의하고 수정할 수 없다는 것입니다.
문제: 제한된 범위의 전역 변수
다음 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 조건 내에서 템플릿은 값이 있는 로컬 변수 $currentUserId를 정의합니다. UserData 속성을 기반으로 할당됩니다. 그러나 이 변수의 범위는 if 블록으로 제한되어 있지만 우리는 외부에서도 이 변수에 액세스하려고 합니다.
해결책: 변수 정의 및 수정
Go 템플릿의 전역 변수는 할당 연산자 :=를 사용합니다.
{{$currentUserId := 0}}
변수 값을 변경하려면 할당을 사용하세요. 연산자 =.
{{$currentUserId = .UserData.UserId}}
if 블록 외부에서 변수를 정의하고 블록 내에서 수정하면 $currentUserId에 대한 변경 사항이 if 블록 이후에도 지속됩니다.
예를 들어 다음 코드는 다음을 추가합니다. if 블록 전후에 몇 가지 추가 논리:
{{$currentUserId := 0}} Before: {{$currentUserId}} {{if .UserData}} {{$currentUserId = .UserData.UserId}} [<a href="#ask_question">Inside {{$currentUserId}}</a>] {{else}} {{$currentUserId = 0}} {{end}} After: {{$currentUserId}}
이제 UserData가 존재하거나 존재하지 않는 두 경우 모두에 대해 $currentUserId 변수 if 블록 외부에서 올바르게 업데이트되고 액세스 가능합니다.
다른 접근 방식
전역 변수를 사용하는 것 외에도 다음을 고려할 수도 있습니다.
위 내용은 Go 템플릿에서 전역 변수를 어떻게 정의하고 수정할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!