> 백엔드 개발 > Golang > golang 텍스트/템플릿은 함수로 시작합니다.

golang 텍스트/템플릿은 함수로 시작합니다.

WBOY
풀어 주다: 2024-02-06 11:15:03
앞으로
633명이 탐색했습니다.

golang 文本/模板以函数开头

질문 내용

저는 gotext/template 包中没有看到任何类型的 startswith 기능 중입니다. 이것이 최선의 구현입니까?

{{if eq (slice $c 0 5) "begin"}}
로그인 후 복사

정답


내장된startswith템플릿 기능이 없습니다.

가장 깔끔한 방법은 해당 기능을 사용하여 사용자 정의 함수를 등록하는 것입니다.

으아악

이 결과는 다음과 같습니다(go 놀이터에서 시도해 보세요):

으아악

사용자 정의 함수를 등록할 수 없거나 등록하고 싶지 않은 경우 slice 문자열로 작동하지만 주의해야 합니다. 입력 문자열이 5바이트보다 짧으면 템플릿 실행 오류가 발생합니다!

대신(사용자 정의 기능을 등록하고 싶지 않은 경우) 당황하지 말고 내장된 printf 函数,精度是要比较的字符串的长度。如果输入字符串较短,printf 기능을 사용하는 것이 좋습니다.

으아악

이 출력은 동일합니다. go 놀이터에서 사용해 보세요.

참고하시고 hasprefix 更安全、更干净、更简单,因为我们不必硬编码前缀的长度 (5)를 이용하세요.

명시적 매개변수 인덱싱을 사용하면 이 부분을 동적으로 만들 수도 있습니다.

으아악

보시다시피 접두사 5의 하드코딩된 길이를 제거할 수 있습니다. 그러면 다시 동일한 콘텐츠가 출력됩니다. go 놀이터에서 사용해 보세요.

마지막으로 주의할 점: 슬라이스 문자열은 인덱스를 바이트 인덱스로 해석하는 반면 형식 문자열에 사용된 정밀도는 룬 개수로 해석됩니다!

위 내용은 golang 텍스트/템플릿은 함수로 시작합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿