Go 1.22+. Что выведет код?
package main
import "fmt"
type UserID int
type Alias = int
func main() {
var x any = UserID(7)
var y any = Alias(7)
_, first := x.(int)
_, second := y.(int)
fmt.Println(first, second)
}👾 — false true
👍 — true true
🥰 — false false
⚡️ — Паника
Ответ: 👾 — false true.
UserID — отдельный определённый тип. Утверждение x.(int) не выполняет преобразование и возвращает false в форме с comma-ok. Alias — другое имя для int, поэтому второе утверждение успешно.
Документация
➡️ Навигация: База знаний • Задачи • Собеседования • Вакансии
🐸 Библиотека программиста