扫码一下
查看教程更方便
解析:
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) }