Go 学习笔记(二)- 程序结构

综合编程 2016-04-20

本章介绍了命名,关键词,声明,赋值,类型,包,作用域等概念,但主要介绍的只是程序结构和声明。

命名

Go 变量区分大小写 字母或下划线开头,推荐 驼峰式 命名,在一个包里,变量,常量,函数首字母大写,它将是导出的,例如fmt包的Printf函数就是导出方法。

关键词

Go 语言中有25个关键词:

break      default       func     interface   select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

貌似其他语言也都差不多,部分不同。。

内建类型及函数

Go 有30多个预定义的名字的内建常量、类型和函数。

内建常量: true false iota nil

内建类型: int int16 int32 int64 int8
uint uint16 uint32 uint64 uint8 uintptr
float32 float64 complex128 complex64
bool byte error rune string
ComplexType FloatType IntegerType Type Type1

内建函数: make len cap new append copy close delete
complex real imag panic recover
print println

这里列出的比 go圣经 里多了几个类型和函数,不知道什么时候加的,具体查看 官方文档

声明

目前就4个关键词用于声明,var 变量声明,const 常量声明,type 类型声明,func 函数声明。

变量

变量声明的一般语法如下:

var 变量名字 类型 = 表达式

其中 “类型” 或 “= 表达式” 两个部分可以省略其中的一个。

var a int = 1 // 声明int型并初始化为 1
var b int // 声明int型,默认初始值为 0
var c = 2 // 根据值类型声明为int型初始化为 2

简短变量声明

语法: 名字 := 表达式

变量类型根据表达式值自动推导。

要特别注意 :=
是声明, =
是赋值,不能搞混。

a := 1
b := "str"
c := a+1

指针

其实也差不多,但是这里的指针比 c 的简单太多了,跟 php 的取地址差不多。

x := 1
p := &x
*p = 2

赋值

亮点在于可以同时赋值多个,函数也可以返回多个值,叫做 元组赋值。

变量 = 值
元组赋值 x, y = y, x

类型

语法: type 类型名字 底层类型

type Celsius float64    // 摄氏温度
type Fahrenheit float64 // 华氏温度

为什么声明类型?除了可以意义化描述之外,还可以为自定义类型绑定方法(原生类型不可以)。

具体以后研究..

作用域

这个貌似跟 es6 类似,块级作用域,没一个 {} 中都是独立的域。。

小结

在这里看到了 es6,php 的影子,相对而言语法还是比较简单易学的。继续加油。。

楼教主

责编内容by:楼教主 (源链)。感谢您的支持!

您可能感兴趣的

WebAssembly for Gophers ▶ Containers From Scratch — If you’ve got 40 minutes, this talk o...
Golang for Rubyists. Part 7. Ruby and Golang, meth... Hello, my dear friends. We all love Ruby (you too, right?) for its expressive...
Golang服务器的网络层实现 由于最近有接触到一些长连接的服务器实现,对网络模型有所学习。对基于C/C++的网络模型实现和基于GoLang的实现对比下来,发现Golang的网络模型编程难度...
Create Versatile Microservices in Golang — Part 5 ... In the previous part in this series , we touched upon user authentication...