概述
在 Go 语言中,如果一个结构体和一个嵌入字段同时实现了相同的接口会发生什么呢?我们猜一下,可能有两个问题:
1.编译器会因为我们同时有两个接口实现而报错吗?
2.如果编译器接受这样的定义,那么当接口调用时编译器要怎么确定该使用哪个实现?
在写了一些测试代码并认真深入的读了一下标准之后,我发现了一些有意思的东西,而且觉得很有必要分享出来,那么让我们先从 Go 语言中的方法开始说起。
方法
Go 语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的
我用的是mac mini然后在上边装好了sublime text2 插件依然是go sublime和go build这两个就不介绍了,因为之前已经介绍了安装了,go的mac os安装包可以直接下的,下载地址是http://code.google.com/p/go/downloads/list?q=OpSys-OSX+Type-Installer,根据你自己的电脑来说话,下载对应的就可以了。然后直接安装,安装好之后还是配置环境变量,一般的linux上边都是这样的
cd
ls -a #显示的
1. 下载go安装包
https://dl.google.com/go/go1.13.7.windows-amd64.msi
这个是go语言程序安装包,点击一路安装,可以根据自己需求更改安装路径2. Windows + R
在Windows运行窗口输入cmd -> go env 可以看到环境变量等,代表go程序安装成功。3. 下载编译器 sublime text 3
http://www.sublimetext.com/3 选择Windows版本下载
为什么使用GO
go 高性能 且 开发速度快
Go 语言使用了更加智能的编译器,并简化了解决依赖的算法,最终提供了更快的编译速
度。 编译 Go 程序时,编译器只会关注那些直接被引用的库,而不是像 Java、C C++那
样,要遍历 依赖链中所有依赖的库。因此,很多 Go 程序可以在 1 秒内编译完。在现代硬
件上,编译整个 Go 语言的源码树只需要 20 秒
go 语法简洁,类型系统简单且高效,使用接口作为代码复用的基础模块
编译速度快,减少了构建时间
内置并发机制、垃圾回收器
go