内容简介:最近,我准备学习一门新的编程语言。之前写过一篇博文:基础类型复合类型
最近,我准备学习一门新的编程语言。之前写过一篇博文: 如何学习一门新的编程语言 - 以 Python 为例 ,按照这种学习思路,我们一起来学 Go。
1. Go 的数据结构
基础类型
- 布尔类型:bool
- 整型:byte、int、int8、int16、uint、uintptr
- 浮点类型:float32、float64
- 复数类型:complex64、complex128
- 字符串:string
- 字符类型:rune
- 错误类型:error
复合类型
- 指针:pointer
- 数组:array
- 切片:slice
- 字典:map
- 通道:chan
- 结构体:struct
- 接口:interface
Go 变量标识由字母、数字、下划线组成,其中首字母不能为数字。声明变量时,类型放在变量标识后面。一般形式为:
// 单个变量 var identifier type // 多个变量 var identifier1, identifier2 type
声明变量时,如果没有初始化,则默认为零值。对于有初始值的变量声明,可以省略类型,因为 Go 能推导出类型。
var i int = 0 var i = 0 // 还可以省略 var 关键字,使用 := 语法糖声明变量 i := 0
2. Go 的逻辑结构
- 循环结构 for
for i := 0; i < 10; i++ {
sum += i
}
sum := 0
for sum < 1000 {
sum += sum
}
- 条件分支 if、switch
if x < 0 {
return -x
} else {
return x
}
switch t := i.(type) {
case bool:
return "I'm a bool"
case int:
return "I'm an int"
default:
return "Don't know type %T", t
}
- 跳转 goto
goto 可以无条件跳转到指定的标签
if error {
goto doError
}
// 发生错误时,跳过的代码块
doError:
// 发生错误时,立即执行的代码块
- 推迟 defer
defer 语句会被压入栈中,当外层函数返回之后,依次出栈执行。
func main() {
defer second_run()
first_run()
}
3. Go 的模块定义
3.1 函数
Go 语言函数定义格式:
func function_name( [parameter list] ) [return_types] {
// 函数体
}
- func,函数声明关键字
- function_name,函数名称,与参数列表一起构成了函数签名
- parameter list,参数列表
- return_types,返回类型
举个例子:
func max(num1, num2 int) int {
if (num1 > num2) {
return num1
} else {
return num2
}
}
Go 函数还可以返回多个值:
func addAndMult(a int, b int) (int, int){
return a + b, a * b
}
除此,Go 中还可以声明匿名函数,直接赋值给变量:
my_func_name := func() {
// 函数体
}
3.2 包(package)
Go 使用 package 来管理代码,这种方式与 Python 类似。package 是一个或多个 Go 源码文件的集合。Go 语言内置了很多 package,例如 fmt、os、io 等。
声明包时,在文件第一行添加如下标识:
package package_name
引用时,在文件头部添加如下标识
import "path/package_name"
package 的特性:
- 一个目录下的同级文件属于一个 package
- 包名与目录名可以不同,但是通常会保持一致
- 程序的入口是 main 包的 main 函数,如果没有 main 包,则不会生成可执行文件
- 仅首字母大写的标识符,包外可以访问
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
人件(原书第3版)
[美] Tom DeMarco、[美] Timothy Lister / 肖然、张逸、滕云 / 机械工业出版社 / 2014-8 / 69.00元
在软件管理领域,很少有著作能够与本书媲美。作为经久不衰的畅销书,本书深刻地洞察到软件开发的最大问题不在于技术,而在于人。人的因素并不容易解决,一旦解决了,你将更有可能获得成功。 本书是软件管理领域的传奇经典,被誉为“对美国软件业影响最大的一本书”。全书从管理人力资源、创建健康的办公环境、雇用并留用正确的人、高效团队形成、改造企业文化和快乐工作等多个角度阐释了如何思考和管理软件开发的最大问题—......一起来看看 《人件(原书第3版)》 这本书的介绍吧!
JS 压缩/解压工具
在线压缩/解压 JS 代码
Base64 编码/解码
Base64 编码/解码