ホームページ > バックエンド開発 > Golang > Go の for ループからインターフェイスのリストを返すにはどうすればよいですか?

Go の for ループからインターフェイスのリストを返すにはどうすればよいですか?

王林
リリース: 2024-02-09 12:10:18
転載
388 人が閲覧しました

如何从 Go 中的 for 循环返回接口列表?

Go 言語では、for ループを通じて配列、スライス、マップなどのデータ構造をトラバースできます。ただし、場合によっては、ループ内のインターフェイスのリストを返す必要があります。インターフェイスは複数の具象型を表すことができる抽象型であるため、これは一般的な要件です。この記事では、Go で for ループを使用してインターフェイスのリストを返す方法を紹介します。まず、Go のインターフェイス型と型アサーションの概念を理解する必要があります。

質問内容

Goのforループからインターフェースリストを返すにはどうすればよいですか? 次のデータがあるとします:

###名前### 123456 ###7### プロジェクト名プロジェクト名プロジェクト名プロジェクト名次の go コードを使用して、project_type=1 と project_type=2 の 2 つのリストを取得できます。 リーリー しかし、現在、project_type のデータは
idプロジェクトタイプ
プロジェクト名 1
プロジェクト名 1
プロジェクト名 1
プロジェクト名 2
プロジェクト名 2
プロジェクト名 3
3 8
3 9
4 10
4
の json[{"project_type":1,"name":"something else"},{"project_type":2,"name":"something else"} です。 ,{ "project_type":3,"name":"something else"},{"project_type":4,"name":"something else"}]

、project_type は 2 より大きいので、インターフェイスを取得する必要があります{} list、以下のようにコードを書き直そうとしましたが、次に何を書けばよいのかわかりません。goのforループからインターフェースリストを返すにはどうすればよいですか?提案ありがとう。

func (d *db) projectlist(type, uid string, size uint64) (interface{}, interface{}, error) {
    type resp struct {
        name            string  `json:"name"`
        id             string  `json:"id"`
        projecttype    string  `json:"project_type"`

    }

    var project_type_1 []*resp
    var project_type_2 []*resp

    sql = fmt.sprintf(sql, where.string())
    _, err := d.ctx.db().selectbysql("select * from project where project_type=1 order by rand() limit 10").load(&project_type_1)

    _, err = d.ctx.db().selectbysql("select * from project where project_type=2 order by rand() limit 10").load(&project_type_2)
    return project_type_1, project_type_2, err
}
ログイン後にコピー

Solution

project_type ごとに 10 個の結果が必要な場合 (すべて 10*n 個の結果): リーリー

すべてのタイプの結果が合計 10 件ある場合:

リーリー

以上がGo の for ループからインターフェイスのリストを返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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