Здравствуйте, netch80, Вы писали:
N>и с этого момента buka — просто алиас для foo, а ziuka — намеренно отдельный тип, все имплицитные соответствия, конверсии и присвоения запрещены, то же для температуры (ей высоту просто так не присвоишь, матчинг функции не будет происходить, и так далее).
Не уверен, что эти фичи являются показателем строгости типизации. ИМХО, строгая типизация — это когда
нет неявных преобразований между типами разной структуры. И паскаль этому определению вполне соответствует.
N>А теперь сюрприииз — в том самом Go, в котором вы увидели только duck typing, то же самое:
N>с тем же результатом — buka идентичен foo (алиас для него), real = float во всём использовании, а вот ziuka, altitude и temperature отделены.
А, ню-ню.
package main
import (
"fmt"
"net"
)
func main() {
var foo net.IP
var bar []byte = []byte{1, 2, 3, 4}
foo = bar // OH SHI~
fmt.Println(foo)
}