让咱们一块儿Go(十)

前言:

本系列还没流产,继续难产中,哈哈,只怪我没专心,在期间又偷偷去学了python,ruby,scala,haskell这几种语言,若是你不幸是本系列的读者,那么你得慢慢等后面的了,等不及能够过几年再来看看啊^_^。由于,Go语言没那么迫切须要用到,并且我的兴趣比较普遍,要玩的东西太多了,天然暂时没法一口气完成Go的学习。对于读者,只能说很是抱歉啦。废话很少说了,今天补上一篇。java

Go语言之枚举定义:

在Go语言中经过关键字const来定义枚举,const以前咱们也遇到过,它用来定义常量,小样还挺厉害,还能定义枚举:
python

上面的例子中,定义了一个关于星期的枚举,当打印Friday时候输出5。打印Sunday输出0。其实,在Go语言中,枚举彷佛就是常量一种特殊形式,只不过在上述代码中出现了关键字iota,这个是一个很是有用的东西,能够帮你省写不少东西,在上面他会初始化为0,而后每一行就会增长1,所以能够认为是一个自增量。因而咱们就没必要这样写了:Sunday=1   Monday=2……一个iota帮你解决一切烦恼,并且在后续中还能对iota进行操做:例如能够Monday = iota*2因而Monday就等于2了。上面说到一行定义一个iota会自增赋值给常量,那么能够一行定义多个吗?答案是能够,可是必须得明确指定值,否则会报错:
编程

发现上面枚举的值都是整数,固然其它类型的也能够,只要相应的赋值就好了,如Sunday = "sun"。ruby

Go语言之结构体定义:

结构体,对于学过C语言的应该很熟悉,对于C这样的语言,没有类的概念,结构体在很大程度上是做为封装的主要方式,那么在Go语言中。结构体又是如何的呢?请往下看:
学习

发现和c语言差很少么,若是仔细看你会发现结构体中的Name首字母N是大写的,而age的首字母a是小写的。这可不是随便的哦。虽然这里我是随便的。在Go语言中若是结构的Field首字母大写,那么它是public的,能够在package外访问。而age首字母是小写的,那么它只能在本package中被访问。是否和java中类的字段用private关键字或者public定义相似呢?
上述代码中咱们声明并初始化st变量是一块儿进行的,固然也能够分开:spa

还有一种方式能够这样:scala

ok,今天就都这里,之后再继续,让咱们一块儿GoGoGo,享受编程的快乐......io