База Hintsage

Интерфейсы и типы

Интерфейсы, методы, type assertions и generics.

Практика

Вопросы: Интерфейсы и типы

Разбор кода: определите наблюдаемое поведение программы и объясните причину сбоя при сравнении интерфейсных значений.

package main

import "fmt"

type Box interface {
	Value() any
}

type data []int

func (data) Value() any { return nil }

func main() {
	var a Box = data{1}
	var b Box = data{1}
	fmt.Println(a == b)
}
Программирование GoИнтерфейсы и типыGo-разработчик серверных приложений

Определите ошибку компиляции и объясните её причину. Зачем интерфейс Number можно передать как ограничение, но нельзя использовать как тип переменной?

package main

type Number interface {
	~int | ~float64
}

func Sum[T Number](a, b T) T {
	return a + b
}

func main() {
	var x Number
	_ = x
}

Показано 1–20 из 50