Тип any
Тип any в Go является псевдонимом для пустого интерфейса interface{} и представляет собой интерфейс, который не определяет ни одного метода. Это означает, что любой тип в Go автоматически удовлетворяет интерфейсу any, поскольку для его реализации не требуется реализовывать никакие методы. Первый параметр типа any может принимать значение любого типа, второй параметр также может быть любого типа, что делает any универсальным контейнером для произвольных данных.
Синтаксис
var v any
v = 42
v = "hello"
v = []int{1, 2, 3}
Пример
Давайте создадим переменную типа any и присвоим ей значение целого числа:
package main
import "fmt"
func main() {
var x any
x = 12345
fmt.Println(x)
}
Результат выполнения кода:
12345
Пример
Давайте создадим переменную типа any и присвоим ей значение строки:
package main
import "fmt"
func main() {
var s any
s = "abcde"
fmt.Println(s)
}
Результат выполнения кода:
"abcde"
Пример
Давайте создадим переменную типа any и присвоим ей слайс целых чисел:
package main
import "fmt"
func main() {
var nums any
nums = []int{1, 2, 3, 4, 5}
fmt.Println(nums)
}
Результат выполнения кода:
[1 2 3 4 5]
Пример
Давайте создадим слайс типа any и добавим в него значения разных типов:
package main
import "fmt"
func main() {
values := []any{42, "abcde", 3.14, true, []int{1, 2, 3}}
for _, v := range values {
fmt.Println(v)
}
}
Результат выполнения кода:
42
"abcde"
3.14
true
[1 2 3]
Смотрите также
-
пустой интерфейс
interface{},
который является синонимом типа any -
утверждение типа
type assertion,
которое позволяет извлечь значение конкретного типа из any -
переключатель типов
type switch,
который проверяет тип значения, хранящегося в any -
конструкция
comma-ok,
которая безопасно проверяет соответствие типа