Bagaimanakah anda boleh melakukan Type Assertion dalam Go dengan menghantar jenis kepada fungsi?

Susan Sarandon
Lepaskan: 2024-10-30 19:57:30
asal
597 orang telah melayarinya

How can you perform Type Assertion in Go by passing in a type to a function?

Taip Penegasan dengan Menghantar Jenis kepada Fungsi

Dalam Go, penegasan taip melibatkan pengesahan sama ada nilai antara muka melaksanakan jenis tertentu. Untuk mencapai ini melalui fungsi, anda boleh menggunakan pakej reflect dan menyediakan sampel jenis data yang dijangkakan.

Pengisytiharan Fungsi

Pengisytiharan fungsi yang anda patut gunakan ialah :

<code class="go">func myfunction(v interface{}, mytype interface{}) bool</code>
Salin selepas log masuk

Di mana:

  • v ialah pembolehubah yang memegang nilai yang anda mahu semak.
  • mytype ialah sampel jenis data yang dijangkakan.

Penggunaan

Dalam fungsi utama, anda boleh memanggil myfunction seperti ini:

<code class="go">assertMatch := myfunction("hello world", "stringSample")</code>
Salin selepas log masuk

Di sini, "stringSample" ialah sampel daripada jenis rentetan. Jika nilai v ialah rentetan, fungsi akan kembali benar. Jika tidak, ia akan kembali palsu.

Contoh

Berikut ialah contoh:

<code class="go">package main

import (
    "fmt"
    "reflect"
)

func myfunction(v interface{}, mytype interface{}) bool {
    return reflect.TypeOf(v) == reflect.TypeOf(mytype)
}

func main() {

    assertNoMatch := myfunction("hello world", map[string]string{})

    fmt.Printf("%+v\n", assertNoMatch)

    assertMatch := myfunction("hello world", "stringSample")

    fmt.Printf("%+v\n", assertMatch)

}</code>
Salin selepas log masuk

Output:

false
true
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah anda boleh melakukan Type Assertion dalam Go dengan menghantar jenis kepada fungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!