当前位置: 首页 > news >正文

《零基础Go语言算法实战》【题目 2-10】接口的实现

《零基础Go语言算法实战》

【题目 2-10】接口的实现

请指出下面代码中存在的问题。

type Programmer struct {

 Name string

}

func (p *Programmer) String() string {

 return fmt.Sprintf("print: %v", p)

}

func main() {

 p := &Programmer{}

 p.String()

}

【解答】

在 Go 语言中,String() 方法实际上实现了 Stringer 的接口,该接口定义在 fmt/print.go 中:

type Stringer interface {

 String() string

}

在使用 fmt 包中的打印方法时,如果类型实现了这个接口,则会直接调用;而题目中在

打印 p 时会直接调用 p 实现的 String() 方法,然后就产生了循环调用。

8094c8f713fd42479d18bc7c43bb77ce.png

 

 

http://www.lryc.cn/news/520083.html

相关文章:

  • Win32汇编学习笔记10.OD插件
  • 在vscode中已经安装了插件Live Server,但是在命令面板确找不到
  • C# SQL ASP.NET Web
  • 联想java开发面试题及参考答案
  • Node.js中的fs模块:文件与目录操作(写入、读取、复制、移动、删除、重命名等)
  • 代码的形状:重构的方向
  • 2021 年 3 月青少年软编等考 C 语言五级真题解析
  • 华为C语言编程规范总结
  • XML 解析器:深入解析与高效应用
  • 《系统爆破:MD5易破,后台登录可爆破?》
  • 基于微信小程序的书籍销售系统设计与实现(LW+源码+讲解)
  • SpringData-Redis缓存
  • Hadoop3.3.4伪分布式环境搭建
  • 【VUE 指令学习笔记】
  • 【深度学习】布匹寻边:抓边误差小于3px【附完整链接】
  • 【学习笔记】理解深度学习的基础:机器学习
  • 提升租赁效率的租赁小程序全解析
  • Windows自动化Python pyautogui RPA操作
  • 蓝桥杯_B组_省赛_2022(用作博主自己学习)
  • RK3568 Android 13 内置搜狗输入法小计
  • 单片机Day1
  • 《机器学习》之贝叶斯(Bayes)算法
  • Redis实现高效的负载均衡算法
  • 虚拟文件系统 VFS
  • 基于Android的民宿租赁系统的设计与实现
  • 数据链路层-STP
  • OceanBase环境搭建与熟悉全攻略:开启分布式数据库探索之旅
  • tensor core实现flash_attn_mma_share_kv源码分析
  • 【源码解析】Java NIO 包中的 MappedByteBuffer
  • 【Docker系列】容器内目录显示异常的解决之道