«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как передать переменные типа в функции для утверждений типа в Go?

Как передать переменные типа в функции для утверждений типа в Go?

Опубликовано 8 ноября 2024 г.
Просматривать:998

How to Pass Type Variables to Functions for Type Assertions in Go?

Передача переменных типа в функции для утверждений типов.

Вы хотите выполнять утверждения типов, передавая тип в функцию. По сути, вы стремитесь добиться следующего:

// Note that this is pseudocode, because Type isn't valid here
func myfunction(mystring string, mytype Type) {
    ...

    someInterface := translate(mystring)
    object, ok := someInterface.(mytype)

    ...  // Do other stuff
}

func main() {
    // Desired function call
    myfunction("hello world", map[string]string)
}

Чтобы успешно выполнить утверждения типа в myfunction, используйте следующее объявление функции:

package main

import "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) // false

    assertMatch := myfunction("hello world", "stringSample")
    fmt.Printf("% v\n", assertMatch) // true
}

Этот подход предполагает использование образца типа, который вы хотите сопоставить, гарантируя, что типы идентичны для успешного утверждения типа.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3