go 经典面试题 部分二练习题|——迹忆客-ag捕鱼王app官网

题库 > go > 练习:97

go 经典面试题 部分二

以下哪个是 go 中的派生类型?
  • interface 类型
  • map 类型
  • channel 类型
正确答案是:a,b,c
正确率:77%

解析:

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)
}

查看笔记

扫码一下
查看教程更方便
网站地图