Метод reflect.Type.String
Метод reflect.Type.String возвращает строковое представление типа. Этот метод полезен для отладки, логирования и генерации кода, когда необходимо получить читаемое описание типа во время выполнения программы. Метод вызывается на объекте reflect.Type и возвращает строку, которая описывает тип в формате, понятном для человека.
Синтаксис
type.String()
Метод не принимает параметров и возвращает строку с описанием типа.
Пример
Давайте получим строковое представление для различных типов данных:
package main
import (
"fmt"
"reflect"
)
func main() {
var num int = 42
var str string = "hello"
var slice []int = []int{1, 2, 3}
var person struct{ Name string }
fmt.Println(reflect.TypeOf(num).String())
fmt.Println(reflect.TypeOf(str).String())
fmt.Println(reflect.TypeOf(slice).String())
fmt.Println(reflect.TypeOf(person).String())
}
Результат выполнения кода:
"int"
"string"
"[]int"
"struct { Name string }"
Пример
Метод String возвращает строковое представление, которое включает имя пакета для пользовательских типов:
package main
import (
"fmt"
"reflect"
)
type MyInt int
type User struct {
ID int
Name string
}
func main() {
var mi MyInt = 10
var u User = User{ID: 1, Name: "Alice"}
fmt.Println(reflect.TypeOf(mi).String())
fmt.Println(reflect.TypeOf(u).String())
}
Результат выполнения кода:
"main.MyInt"
"main.User"
Пример
Для указателей и сложных типов метод возвращает соответствующее строковое представление:
package main
import (
"fmt"
"reflect"
)
func main() {
var ptr *int
var m map[string]int
var ch chan bool
fmt.Println(reflect.TypeOf(ptr).String())
fmt.Println(reflect.TypeOf(m).String())
fmt.Println(reflect.TypeOf(ch).String())
}
Результат выполнения кода:
"*int"
"map[string]int"
"chan bool"
Смотрите также
-
метод
reflect.Type.Kind,
который возвращает базовый вид типа -
метод
reflect.Type.Name,
который возвращает имя типа -
функцию
reflect.TypeOf,
которая возвращает тип значения -
функцию
reflect.ValueOf,
которая возвращает значение в видеreflect.Value