三月沙


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 我的书单

  • 技术编年史

使用 cookiecutter 快速构建 Python 项目

发表于 Sep 12 2017 | 分类于 python
什么是 cookiecuttercookiecutter 是一款 CLI 用来帮助开发者从模板快速构建项目,比如利用 https://github.com/audreyr/cookiecutter-pypackage Python 开发者可以快速构建 Python 项目。 如何使用?安装 pip i ...
阅读全文 »

Go 中的面向对象

发表于 Aug 17 2017 | 分类于 golang
Go 不是基于 class 的语言,但是 Go 提供了强大的类型系统来实现 OO(Object Oriented),关于如何正确使用 OO 的争论网上已经非常多了,在此我们秉承 Go 提供的面向对象机制来实现不同的例子和使用模式,借此了解 Go 中的 OO。 使用 embed type 实现继承Go ...
阅读全文 »

严格来说 Go 没有引用类型

发表于 Aug 10 2017 | 分类于 golang
什么是引用类型简单类说就是不同的变量内存地址是一样的,也就是说同一个内存地址有不同的别名。 code-11234567>>> dd = dict()>>> c = dd>>> id(c)4476836672>>> id(dd)4 ...
阅读全文 »

理解 Go channel

发表于 Aug 3 2017 | 分类于 golang
此篇介绍 go channel 什么是 goroutine They’re called goroutines because the existing terms — threads, coroutines, processes, and so on — convey inaccurate c ...
阅读全文 »

新手 Go 程序员的最佳实践

发表于 Jul 30 2017 | 分类于 golang
无意中在 medium 看到了一篇文章《Best practices for a new Go developer》,读完之后略有启发,摘录文章观点至此共飨,感兴趣读者可以直接阅读原文,原文很长也很散乱。 1工欲善其事必先利其器,真正写用 Go 编写代码之前先准备好你的环境,可以考虑从官方文档 ...
阅读全文 »

理解 Go 类型系统

发表于 Jul 27 2017 | 分类于 golang
Type 的分类在 Go 中所有需要被定义和声明的对象都是 Type: int string function pointer interface map struct chan … 和大多数计算机语言一样,Go Type 默认包含常用的基础数据类型,称为 Pre-declarered ty ...
阅读全文 »

理解 Go make 和 new 的区别

发表于 Jul 26 2017 | 分类于 golang
new 和 make 都可以用来分配空间,初始化类型,但是它们确有不同。 new(T) 返回的是 T 的指针new(T) 为一个 T 类型新值分配空间并将此空间初始化为 T 的零值,返回的是新值的地址,也就是 T 类型的指针 *T,该指针指向 T 的新分配的零值。 123456789p1 := ...
阅读全文 »

理解 Go defer

发表于 Jul 23 2017 | 分类于 golang
defer 的作用和执行时机go 的 defer 语句是用来延迟执行函数的,而且延迟发生在调用函数 return 之后,比如 1234func a() int { defer b() return 0} b 的执行是发生在 return 0 之后,注意 defer 的语法,关 ...
阅读全文 »

Go 入门参考资料

发表于 Jul 23 2017 | 分类于 golang
go 的入门书籍教程非常多,这里只介绍几个具有代表性的,足够初学者入门参考。 官方教程Language Specificationgo 的语法说明以及语言的组织结构,包含大量的细节解释和说明,值得通读一遍 A Tour of Gogo 官方在线的教程,可执行代码,对 go 语言的执行和抒写有直观的演 ...
阅读全文 »

理解 Go interface 的 5 个关键点

发表于 Jul 22 2017 | 分类于 golang

1、interface 是一种类型

1
2
3
4

type I interface {
Get() int
}

首先 interface 是一种类型,从它的定义可以看出来用了 type 关键字,更准确的说 interface 是一种具有一组方法的类型,这些方法定义了 interface 的行为。

go 允许不带任何方法的 interface ,这种类型的 interface 叫 empty interface。

如果一个类型实现了一个 interface 中所有方法,我们说类型实现了该 interface,所以所有类型都实现了 empty interface,因为任何一种类型至少实现了 0 个方法。go 没有显式的关键字用来实现 interface,只需要实现 interface 包含的方法即可。

阅读全文 »
1…101112…14
三月沙

三月沙

135 日志
28 分类
113 标签
GitHub
© 2024 三月沙
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.2