Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengenalan terperinci kepada penggunaan .() dalam golang

Pengenalan terperinci kepada penggunaan .() dalam golang

PHPz
PHPzasal
2023-03-30 13:35:322490semak imbas

Golang ialah bahasa pengaturcaraan yang sangat popular dan digunakan secara meluas dalam banyak bidang. Semasa proses pembangunan, banyak kali kita perlu menghantar fungsi sebagai parameter kepada fungsi lain Pada masa ini, kita perlu menggunakan penggunaan .() dalam golang. Artikel ini akan memperkenalkan secara terperinci penggunaan .() dalam golang.

  1. Apakah kegunaan .()?
    Dalam golang, .() dipanggil penegasan jenis, yang boleh menukar pembolehubah jenis antara muka{} kepada jenis lain, seperti jenis rentetan, jenis integer, dsb. Apabila memanggil fungsi, kita boleh menggunakan .() untuk menukar parameter fungsi kepada jenis yang berbeza. Penggunaan asas
  2. .()
    .Sintaks asas penggunaan () adalah seperti berikut:

    value, ok := interface{}.(Type)

    dengan nilai ialah nilai ditukar dan ok ialah jenis bool Nilai pulangan menunjukkan sama ada penukaran berjaya.

Berikut ialah contoh mudah yang menunjukkan cara menggunakan .() untuk menukar pembolehubah jenis antara muka{} kepada jenis rentetan:

func main() {
    var i interface{} = "hello"
    s := i.(string)
    fmt.Println(s)
}

Output The hasilnya ialah:

hello
  1. Aplikasi lanjutan penggunaan ()
    .() sangat fleksibel untuk digunakan dan boleh memainkan peranan penting dalam senario program yang berbeza. Di bawah ialah dua senario aplikasi lanjutan.

3.1 Penukaran jenis nil
Jenis nil sangat biasa dalam golang. Ia boleh mewakili jenis penunjuk, jenis hirisan, dsb. Semasa proses penukaran jenis, kita perlu memberi perhatian kepada pengendalian jenis nil. Dalam kes ini, kita perlu menggunakan nilai ok untuk menentukan sama ada penukaran berjaya.

Berikut ialah contoh yang menunjukkan cara mengendalikan nilai ok semasa penukaran kepada jenis nil:

func main() {
    var i interface{} = nil
    _, ok := i.(string)
    fmt.Println(ok) // false
}

Hasil output ialah:

false

3.2 Fungsi Melepasi sebagai parameter
Dalam golang, fungsi boleh dihantar sebagai parameter kepada fungsi lain. .() sangat berguna jika kita perlu menukar parameter fungsi (iaitu parameter panggilan fungsi) kepada jenis yang berbeza apabila memanggil fungsi.

Berikut ialah contoh yang menunjukkan cara menggunakan .() untuk menukar hujah fungsi kepada jenis integer:

func main() {
    f := func(i int) {
        fmt.Println(i)
    }
    test(f, "2")
}

func test(f func(int), s interface{}) {
    if i, ok := s.(int); ok {
        f(i)
    }
}

Outputnya ialah:

2

Dalam contoh ini, kami menghantar jenis integer "2" sebagai parameter fungsi kepada ujian fungsi, dan gunakan .() dalam ujian fungsi untuk menukarnya kepada jenis int supaya ia boleh dihantar ke fungsi f.

  1. Langkah berjaga-jaga semasa menggunakan .()
    Apabila menggunakan .(), kita perlu memberi perhatian kepada perkara berikut:
  • Jika kita mencuba untuk menukar bukan- Jika pembolehubah jenis penunjuk ditukar kepada jenis penunjuk, maka .() akan menyebabkan panik;
  • Jika kita cuba menukar pembolehubah jenis bukan keping kepada jenis keping, maka .() akan menyebabkan panik;
    Oleh itu, anda perlu berhati-hati apabila menggunakan .(), ikuti amalan terbaik pengaturcaraan dan uji serta semak kod anda sebanyak mungkin.

Ringkasnya, penggunaan .() dalam golang ialah ciri yang sangat berguna, yang membolehkan kami menukar parameter fungsi kepada jenis yang berbeza apabila fungsi dipanggil. Dalam pembangunan sebenar, kita boleh menggunakan .() untuk mengendalikan senario yang berbeza mengikut keperluan yang berbeza.

Atas ialah kandungan terperinci Pengenalan terperinci kepada penggunaan .() dalam golang. 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