Bagaimanakah saya boleh menegaskan jenis dengan menghantar pembolehubah jenis ke dalam fungsi dalam Go?

DDD
Lepaskan: 2024-11-01 08:37:31
asal
521 orang telah melayarinya

How can I assert a type by passing a type variable into a function in Go?

Taip Penegasan dengan Menghantar Pembolehubah Jenis ke dalam Fungsi

Seperti yang anda nyatakan, anda bertujuan untuk menegaskan jenis dengan memasukkan pembolehubah jenis ke dalam fungsi. Untuk mencapai matlamat ini, mari kita mendalami pengisytiharan fungsi yang sesuai untuk myfunction bagi memudahkan penegasan jenis:

func myfunction(mystring string, mytype interface{}) bool {
    ...
}
Salin selepas log masuk

Dalam pengisytiharan ini:

  • mystring kekal sebagai parameter rentetan.
  • mytype, walau bagaimanapun, telah disemak kepada antara muka{}. Ini menandakan fungsi saya akan menerima sebarang nilai.

Dalam fungsi saya:

  1. Gunakan reflect.TypeOf() untuk memastikan jenis rentetan saya yang diluluskan.
  2. Gunakan reflect.TypeOf() untuk menentukan jenis mytype.
  3. Jika kedua-dua jenis sepadan, kembalikan benar; jika tidak, pulangkan palsu.

Contoh pelaksanaan:

package main

import (
    "fmt"
    "reflect"
)

func myfunction(mystring string, mytype interface{}) bool {
    return reflect.TypeOf(mystring) == 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)

}
Salin selepas log masuk

Di sini, anda boleh memberikan sebarang jenis sebagai parameter kedua kepada myfunction dan ia akan menilai sama ada mystring sepadan dengan itu taip, memberikan fleksibiliti berharga dalam penegasan jenis anda.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menegaskan jenis dengan menghantar pembolehubah jenis ke dalam fungsi dalam Go?. 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
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!