全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📝 1 篇文章 20 道配套习题

GO方法与接口专题

专题说明

本专题系统讲解Go语言方法与接口的核心概念,帮助初学者理解方法的定义方式、接收者类型选择、接口的隐式实现机制、类型断言与多态实现等关键知识点。

学习目标

  1. 掌握方法的定义语法与接收者类型选择
  2. 理解值接收者与指针接收者的区别与适用场景
  3. 掌握接口的定义、实现与嵌套组合
  4. 学会类型断言与类型选择的使用方法
  5. 理解Go多态的实现机制与接口值结构

学习内容

  • 方法定义:语法格式、接收者、方法与函数区别
  • 接收者类型:值接收者、指针接收者、选择原则
  • 接口实现:隐式实现、接口定义、空接口any
  • 接口组合:接口嵌套、小接口原则、标准库示例
  • 类型断言:安全断言、不安全断言、类型选择
  • 多态机制:接口多态、方法集规则、接口值结构

学习建议

  1. 重点理解Go的隐式接口实现机制,这是Go的核心特性
  2. 掌握值接收者与指针接收者的方法集规则
  3. 注意nil接口与nil指针的区别,避免常见错误
  4. 理解Go通过接口实现多态,而非继承
  5. 实践中使用安全断言,避免panic

📝 发现内容有误?点击此处直接编辑

📝 配套习题(19 题)

1
单选题

Go语言中定义方法的语法是?

A

func ClassName.methodName()

B

func (receiver Type) methodName()

C

method Type.methodName()

D

def Type.methodName()

2
判断题

Go语言中,方法必须绑定到命名类型(如struct、自定义类型),不能绑定到基本类型(如int)。

A

B

3
单选题

Go语言中定义接口使用什么关键字?

A

class

B

interface

C

abstract

D

protocol

4
判断题

Go语言中,类型实现接口不需要显式声明implements,只要实现了接口定义的所有方法即可。

A

B

5
单选题

Go中的空接口interface{}(Go 1.18+可写作any)有什么特点?

A

不能存储任何值

B

只能存储指针类型

C

可以存储任意类型的值

D

必须显式实现才能使用

6
判断题

Go 1.18引入的any关键字是interface{}的别名,两者完全等价。

A

B

7
单选题

Go中值接收者方法和指针接收者方法的主要区别是?

A

值接收者可以修改结构体字段

B

指针接收者可以修改结构体字段

C

值接收者性能更好

D

指针接收者必须用指针调用

8
判断题

如果类型使用指针接收者实现接口,那么该类型的值实例可以赋值给接口变量。

A

B

9
单选题

Go中进行类型断言的语法是?

A

val = i as Type

B

val, ok := i.(Type)

C

val = cast(i, Type)

D

val = i.cast(Type)

10
判断题

Go的类型切换(type switch)中,case分支的变量v是该分支对应的类型,不是接口类型。

A

B

11
单选题

Go中接口嵌套(组合)的主要目的是?

A

实现接口继承

B

组合多个小接口形成更大的接口

C

覆盖已有接口方法

D

增加接口的方法实现

12
填空题

Go接口通过 ______ 其他接口实现组合,组合接口包含 ______ 嵌入接口的方法。实现组合接口必须 ______ 所有方法。io.ReadWriter组合了 __________________,实现者需同时实现 ____________ 方法。

13
单选题

Go中类型的方法集(method set)是指?

A

类型所有字段

B

类型可调用的所有方法集合

C

类型实现的接口

D

类型的构造函数

14
判断题

Go中接口的方法集决定了类型是否满足该接口,类型的方法集必须包含接口的所有方法。

A

B

15
填空题

Go方法集规则:值类型 ______ 的方法集包含所有 ________ 方法;指针类型 ______ 的方法集包含 __________________ 方法。因此指针类型 ______ 包含更多的方法。接口要求类型方法集 ______ 接口定义的所有方法。

16
单选题

Go语言实现多态的主要方式是?

A

类继承

B

接口

C

函数重载

D

模板

17
填空题

Go接口值由 ____________ 两部分组成,只有 ______ 都为 ______ 时接口才是nil接口。将nil指针赋给接口时, ______ 部分不为nil,导致接口 != nil。正确返回nil接口应 ______ 返回nil。

18
多选题

关于Go方法集与接口实现,以下哪些说法正确?

A

值类型T的方法集包含所有值接收者方法

B

指针类型*T的方法集包含值接收者和指针接收者方法

C

值接收者方法实现接口时,T和*T都能赋值给接口

D

指针接收者方法实现接口时,只有*T能赋值给接口

E

接口的方法集是接口定义的所有方法

19
填空题

Go类型断言有两种形式: ________ 语法 ___________________ 返回值和bool; __________ 语法 _______________ 失败时 ______。推荐使用 ________ 防止程序崩溃。

← 上一个专题 GO接口设计与最佳实践专题
下一个专题 → GO标准库专题

📝 发现内容有误?点击此处直接编辑

想查看更多习题和详细解析?
小程序提供完整的题库和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库