ホームページ > バックエンド開発 > Golang > Go Web アプリケーションで HTML 行を N 回繰り返す方法は?

Go Web アプリケーションで HTML 行を N 回繰り返す方法は?

Barbara Streisand
リリース: 2024-12-26 05:43:36
オリジナル
471 人が閲覧しました

How to Repeat an HTML Line N Times in Go Web Applications?

Go Web アプリケーションで HTML 行を N 回繰り返す

Web 開発のコンテキストでは、反復すると便利です。 HTML コンテンツを指定された回数だけ送信します。たとえば、ページネーション リンクを作成したり、動的リストを生成したりする場合です。 Go では、HTML テンプレートを通じてこれを実現する方法がいくつか提供されています。

gt;{{range}} アクションの使用

Go テンプレートには、{{range}} アクションが用意されています。これにより、スライス、配列、またはマップの反復処理が可能になります。これを HTML コンテンツの繰り返しに使用するには、目的の繰り返しを表す項目のコレクションを提供する必要があります。

ゼロ値スライスの受け渡し

1 つのアプローチ空のスライスを渡すことです。 Go は実行時に要素のないスライスを作成します。この例では、構造体のゼロ値スライスを渡すことができます: make([]struct{}, n)。

<ul>
    <li><a href="/?page=1">1</a></li>
    <li><a href="/?page=2">2</a></li>
                      .
                      .
                      .
    <li><a href="/?page=n">n</a></li>
</ul>
ログイン後にコピー
たとえば、次の HTML コードを考えてみましょう:

{{range}} アクションを使用して、ゼロ値のスライスを反復処理し、リンクに増加する値を入力し、HTML を生成できます。

const templ = `
<ul>
{{range $idx, $e := .}}
    <li><a href="/?page={{$idx}}">{{idx}}</a></li>
{{end}}
</ul>`
ログイン後にコピー
Go テンプレート コードは次のようになります:

塗りつぶされたスライスの使用

values := make([]int, n)
for i := range values {
    values[i] = (i + 1) * 2
}
ログイン後にコピー
別のオプションは、明示的に塗りつぶすことです。必要な値を含むスライス。これは、生成されたコンテンツをより詳細に制御する必要がある場合に役立ちます。たとえば、2 から始まる奇数を生成するには、塗りつぶされたスライスを作成します:

const templ = `
<ul>
{{range .}}
    <li><a href="/?page={{.}}">{{}}</a></li>
{{end}}
</ul>`
ログイン後にコピー
そして、スライス要素を直接使用するようにテンプレートを変更します:

func Add(i int) int { return i + 1 }

tmpl := template.Must(template.New("").Funcs(template.FuncMap{
    "Add": Add,
}).Parse(templ))
ログイン後にコピー
次から始まる数値を増やす必要がある場合のみ1、カスタム関数を登録して、ゼロ値スライスのインデックスに 1 を追加します:

const templ = `
<ul>
{{range $idx, $e := .}}{{$idx := Add $idx}}
    <li><a href="/?page={{$idx}}">{{idx}}</a></li>
{{end}}
</ul>`
ログイン後にコピー
次に、カスタム関数を呼び出すようにテンプレートを変更します:

Byこれらのテクニックを利用すると、Go Web アプリケーションで反復的な HTML コンテンツを効率的に生成できます。

以上がGo Web アプリケーションで HTML 行を N 回繰り返す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート