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

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

WBOY
WBOY앞으로
2024-02-06 11:15:03620검색

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으로 문의하시기 바랍니다. 삭제