```go
package main
import "fmt"
type B []byte
type S string
func main() {
var b = B([]byte("hello"))
P(b)
Pr([]byte("hello"))
//var s = S("world")
//SS(s)
//SSr(string("world"))
}
func P(b []byte){
fmt.Println(b)
}
func SS(s string){
fmt.Println(s)
}
func SSr(s S){
fmt.Println(s)
}
func Pr(b B){
fmt.Println(b)
}
```
去掉注释通不过编译,不去掉注释输出了
`[104 101 108 108 111]
[104 101 108 108 111]
`
命名类型和未命名类型的问题
提供2个网站里面有解释:
https://golang.org/ref/spec#Type_identity
https://stackoverflow.com/questions/19334542/why-can-i-type-alias-functions-and-use-them-without-casting
#1