Вопрос: Как сделать custom type (type alias vs defined type) и зачем это нужно?
Go
Junior
Без компании
Вопрос: Как сделать custom type (type alias vs defined type) и зачем это нужно?
Ответы
type T = U — alias (тот же тип). type T U — новый определённый тип на базе U.
```go
package main
import "fmt"
type ID = int // alias
type UserID int // defined type
func main() {
var a ID = 10
var b UserID = 10
fmt.Println(a, b)
// a = b // нельзя, разные типы
a = int(b) // нужен каст
}
```
Defined type полезен для доменной модели и type-safety.