Rumah >pembangunan bahagian belakang >Golang >pertanyaan golang dengan syarat yang berbeza

pertanyaan golang dengan syarat yang berbeza

PHPz
PHPzasal
2023-05-09 21:58:07660semak imbas

Memandangkan Golang digunakan lebih dan lebih meluas dalam aplikasi peringkat perusahaan, pertanyaan data juga telah menjadi keperluan penting. Ia berbeza daripada cara membuat pertanyaan dalam bahasa lain Artikel ini akan memperkenalkan cara menggunakan Golang untuk membuat pertanyaan dengan syarat yang berbeza.

Jenis Golang

Di Golang, terdapat jenis data berbeza yang tersedia, terutamanya termasuk:

  • rentetan: Jenis rentetan
  • int: Integer jenis
  • float: Jenis titik terapung
  • bool: Jenis Boolean
  • struct: Jenis struktur

untuk Jenis data yang berbeza, kita boleh menggunakan berbeza kaedah pertanyaan.

Pertanyaan syarat tunggal

Pertanyaan syarat tunggal ialah kaedah pertanyaan yang paling mudah dan yang paling biasa. Sebagai contoh, kita perlu menyoal pelajar yang berumur 18 tahun daripada senarai pelajar.

type Student struct {
    Name string
    Age  int
}
var students []Student
// 初始化students
for _, student := range students {
    if student.Age == 18 {
        fmt.Println(student.Name)
    }
}

Hanya tentukan pelajar jenis struktur, kemudian cari pelajar yang umurnya bersamaan dengan 18 dalam gelung.

Jika kita perlu mendapatkan semula medan jenis rentetan, kita boleh menggunakan rentetan.HasPrefix atau rentetan.HasSuffix fungsi. Contohnya, untuk menanyakan senarai filem bagi filem yang namanya bermula dengan "Harry Potter":

type Movie struct {
    Name string
    Year int
}
var movies []Movie
// 初始化movies
for _, movie := range movies {
    if strings.HasPrefix(movie.Name, "Harry Potter") {
        fmt.Println(movie.Name)
    }
}

Menggunakan rentetan.Fungsi HasPrefix dan pernyataan bersyarat cawangan (jika pernyataan), kita boleh mencari filem ini.

Pertanyaan berbilang syarat

Pertanyaan berbilang syarat perlu mempertimbangkan berbilang medan berbeza untuk mengembalikan hasil. Contohnya, jika kami mempunyai senarai pesanan, kami perlu mendapatkan semula pesanan untuk tarikh tertentu dan untuk pelanggan tertentu.

type Order struct {
    OrderID    int
    CustomerID int
    Date       time.Time
}
var orders []Order
// 初始化orders
for _, order := range orders {
    if order.CustomerID == 123 && order.Date == time.Date(2021, 1, 1, 0, 0, 0, 0, time.Local) {
        fmt.Println(order.OrderID)
    }
}

Dalam contoh di atas, kami telah menggunakan operator logik && untuk menyemak sama ada dua syarat adalah benar pada masa yang sama.

Pertanyaan julat

Dalam sesetengah kes, kami perlu menanyakan data dalam julat, yang memerlukan penggunaan pengendali perbandingan. Contohnya, tanya pelajar yang grednya antara 80 dan 90:

type Score struct {
    Name  string
    Grade float64
}
var scores []Score
// 初始化scores
for _, score := range scores {
    if score.Grade >= 80 && score.Grade < 90 {
        fmt.Println(score.Name)
    }
}

Dalam contoh di atas, kami menggunakan operator perbandingan >= dan < kerana kami perlu membuat pertanyaan antara 80 dan 90 markah, tidak termasuk 90 .

Pertanyaan kabur

Pertanyaan kabur ialah kaedah pertanyaan yang sangat biasa, biasanya digunakan untuk mencari data yang mengandungi aksara atau rentetan tertentu dalam rentetan. Contohnya, tanya senarai filem untuk filem yang mengandungi rentetan "Avengers":

type Movie struct {
    Name string
    Year int
}
var movies []Movie
// 初始化movies
for _, movie := range movies {
    if strings.Contains(movie.Name, "Avengers") {
        fmt.Println(movie.Name)
    }
}

Dalam contoh di atas, kami menggunakan rentetan.Mengandungi fungsi untuk menyemak sama ada rentetan itu mengandungi subrentetan yang ditentukan.

Kaedah pertanyaan lain

Selain kaedah di atas, Golang juga menyediakan lebih banyak kaedah pertanyaan, seperti menggunakan padanan ungkapan biasa, menggunakan peta untuk menanya data, dsb. Bergantung pada keperluan dan jenis data yang berbeza, kita boleh memilih kaedah pertanyaan yang berbeza.

Kesimpulan

Artikel ini memperkenalkan kaedah pertanyaan yang berbeza di Golang, termasuk pertanyaan syarat tunggal, pertanyaan berbilang syarat, pertanyaan julat, pertanyaan kabur, dsb. Memahami kaedah pertanyaan ini boleh membantu kami menggunakan Golang untuk membuat pertanyaan dan memproses data dengan lebih cekap.

Atas ialah kandungan terperinci pertanyaan golang dengan syarat yang berbeza. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:pemasangan golang1.12Artikel seterusnya:pemasangan golang1.12