go语言学习道路(插曲)-一个疑惑的问题
来源:互联网 发布:行最简形矩阵是什么 编辑:程序博客网 时间:2024/05/17 02:42
最近写go语言程序的时候,发现了一个问题。先看代码:
// MusicPlay project main.gopackage mainimport ("fmt")type Cat interface {Meow()}type Tabby struct{}func (*Tabby) Meow() { fmt.Println("meow") }func GetACat() Cat {var myTabby *Tabby = nil// Oops, we forgot to set myTabby to a real valuereturn myTabby}func TestGetACat() {var ICat Catvar tabby *Tabby = nilICat = tabby//ICat = GetACat()//ICat = nilif ICat == nil {fmt.Println("GetTest Failed!")}}func main() {TestGetACat()}
在调用TestGetACat()函数中,我的想法是ICat应该为nil,然后调用fmt.Println("GetTest Failed!")。运行结果却是没有调用,这个顿时我就感觉有点迷惑了,然后直接加上ICat = nil却又是可以的,于是乎百度了一下。发现了一遍文章,地址:http://geek.csdn.net/news/detail/102187。
他的理解是这样的: ICat指向一个Tabby指针对象,该指针指向nil。所以ICat不为nil。
暂时只能够这么理解,记录下来
0 0
- go语言学习道路(插曲)-一个疑惑的问题
- go语言学习道路1-学习前
- 我学习上的一个小插曲
- 学习.net语言的疑惑??
- 自己一个疑惑的问题
- 百钱百鸡问题的一个疑惑
- 今天的一个插曲
- Go语言的学习
- [Go语言]我的第十一个Go语言程序
- Go语言 几个亟待解决的Go语言问题
- Go语言学习5:Go语言的变量类型
- Go语言学习笔记(一) [Go语言的HelloWorld]
- GO语言学习:go语言实现android应用的步骤
- C语言 子函数返回一个局部指针变量的疑惑
- 一个C语言中unsigned和signed的汇编不同的插曲
- 菜鸟的一个疑惑
- 一个go语言宣传的视频
- go语言 输出一个数字的例子
- Binder源码分析之Java层
- cookie
- (iOS开发)点击tabbar中的按钮显示首页,再如何跳转页面
- android让后将程序图标显示在状态栏
- Javascript 赋值与比较
- go语言学习道路(插曲)-一个疑惑的问题
- C++模板中的函数式参数
- 电机驱动电路
- stringbuffer与stringbuilder的区别?
- SpringMVC 的 Controller 返回各种视图的处理方式
- @RequestMapping
- 学习小记 之 马尔可夫决策过程(Markov Decision Processes)
- 树莓派——GPIO笔记
- Android应用图标在状态栏上显示实现原理