Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh menegaskan jenis dengan menghantar pembolehubah jenis ke dalam fungsi dalam Go?

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

DDD
DDDasal
2024-11-01 08:37:31510semak imbas

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 {
    ...
}

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)

}

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!

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