


Bagaimana untuk mengembalikan senarai antara muka dari gelung for dalam Go?
Dalam bahasa Go, kita boleh merentasi struktur data seperti tatasusunan, kepingan dan peta melalui untuk gelung. Walau bagaimanapun, kadangkala kita perlu mengembalikan senarai antara muka dalam satu gelung. Ini adalah keperluan biasa kerana antara muka ialah jenis abstrak yang boleh mewakili pelbagai jenis konkrit. Artikel ini akan memperkenalkan cara menggunakan gelung for dalam Go untuk mengembalikan senarai antara muka. Pertama, kita perlu memahami konsep jenis antara muka dan penegasan jenis dalam Go.
Kandungan soalan
Bagaimana untuk mengembalikan senarai antara muka daripada gelung for in go? Katakan saya mempunyai data berikut:
id | nama | jenis_projek |
---|---|---|
1 | nama_projek | 1 |
2 | nama_projek | 1 |
3 | nama_projek | 1 |
4 | nama_projek | 2 |
5 | nama_projek | 2 |
6 | nama_projek | 3 |
7 | nama_projek | 3 |
8 | nama_projek | 3 |
9 | nama_projek | 4 |
10 | nama_projek | 4 |
Saya boleh menggunakan kod go berikut untuk mendapatkan dua senarai project_type=1 dan project_type=2,
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 }
Tetapi kini data project_type ialah 的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 lebih besar daripada 2, saya perlu mendapatkan senarai antara muka{}, saya cuba menulis semula kod berikut, tetapi saya tidak tahu apa yang perlu ditulis seterusnya, bagaimana untuk mengembalikan senarai antara muka dari gelung for in go? Terima kasih banyak atas nasihat anda.
func newprojectlist(d *db) ([]interface{}, error) { var s = make([]projecttype, 0) data, err := d.querystring("project_type") if err != nil { return nil, err } err = json.unmarshal([]byte(data), &s) if err != nil { return nil, err } for _, shorttype := range s { fmt.println("this is shorttype", shorttype) } return nil, err }
Penyelesaian
Jika anda mahukan 10 hasil setiap projek_jenis (semua 10*n hasil):
func (d *db) projectlist(type, uid string, size uint64) ([]interface{}, error) { type resp struct { name string `json:"name"` id string `json:"id"` projecttype string `json:"project_type"` } // get all types, you can get it from db // example: select distinct projecttype from project types := []string{"1", "2", "3", "4"} ans := []interface{}{} for _, stype := range types { var project_type []*resp sql = fmt.sprintf(sql, where.string()) _, err := d.ctx.db().selectbysql("select * from project where project_type=" + stype + " order by rand() limit 10").load(&project_type) ans = append(ans, project_type) } return ans, nil }
Sekiranya terdapat 10 keputusan kesemuanya merentas semua jenis:
i write it if you need it
Atas ialah kandungan terperinci Bagaimana untuk mengembalikan senarai antara muka dari gelung for dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Perpustakaan mana yang dibangunkan oleh syarikat besar atau projek sumber terbuka yang terkenal? Semasa pengaturcaraan di GO, pemaju sering menghadapi beberapa keperluan biasa, ...

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

GO Pointer Syntax dan menangani masalah dalam penggunaan perpustakaan Viper semasa pengaturcaraan dalam bahasa Go, adalah penting untuk memahami sintaks dan penggunaan petunjuk, terutama dalam ...

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...

Dua cara untuk menentukan struktur dalam bahasa Go: perbezaan antara VAR dan jenis kata kunci. Apabila menentukan struktur, pergi bahasa sering melihat dua cara menulis yang berbeza: pertama ...

Mengapa lelaran peta di GO menyebabkan semua nilai menjadi elemen terakhir? Dalam bahasa Go, ketika berhadapan dengan beberapa soalan wawancara, anda sering menemui peta ...
