扫码一下
查看教程更方便
解析:
Interface 类型、Map 类型和Channel 类型是Go中的派生类型。
更多关于这些类型的介绍,可以参考下列文章
下面我们通过简单示例来看一下这三种类型的使用
Channel 类型
package main import "fmt" func main() { var a chan int if a == nil { fmt.Println("channel a 是 nil, 现在去定义 a ") a = make(chan int) fmt.Printf("a 的类型是 %T\n", a) } }
Interface 类型
package main import ( "fmt" ) //接口定义 type VowelsFinder interface { FindVowels() []rune } type MyString string //MyString 实现VowelsFinder接口 func (ms MyString) FindVowels() []rune { var vowels []rune for _, rune := range ms { if rune == 'a' || rune == 'e' || rune == 'i' || rune == 'o' || rune == 'u' { vowels = append(vowels, rune) } } return vowels } func main() { name := MyString("Sam Anderson") var v VowelsFinder v = name fmt.Printf("元音字符是 %c", v.FindVowels()) }
Map 类型
package main import ( "fmt" ) func main() { employeeSalary := make(map[string]int) fmt.Println(employeeSalary) }