go text/template
に startswith
のタイプが表示されませんパッケージ機能。これが最良の実装でしょうか?
{{if eq (slice $c 0 5) "begin"}}
組み込みの startswith
template 関数はありません。
最もクリーンなのは、カスタム関数をその機能に登録する場合です:
リーリーこれは出力されます (go playground で試してください):
リーリー カスタム関数を登録できない、または登録したくない場合、slice
は文字列を処理しますが、注意が必要です。入力文字列が 5 バイトより短い場合は、テンプレート実行エラーが発生します。
代わりに (カスタム関数を登録したくない場合)、組み込みの printf
関数を使用することをお勧めします。ここで、 精度 は、文字列の長さです。比較した。 printf
は、入力文字列が短い場合でもパニックしません:
この出力は同じです。 go playground でこれを試してください。
プレフィックス (5
) の長さをハードコーディングする必要がないため、hasprefix
を使用する方が安全、クリーン、簡単であることに注意してください。
明示的なパラメータのインデックス付け を使用すると、この部分を動的にすることもできることに注意してください。 リーリー
ご覧のとおり、プレフィックス5 のハードコードされた長さを取り除くことができます。これでも同じ内容が出力されます。
go playground で試してください。
バイト インデックス として解釈しますが、フォーマット文字列で使用される精度は ルーン カウント として解釈されます。
以上がgolang のテキスト/テンプレートは関数で始まりますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。