阿振sc
阿振sc
# Go经典入门7:if-else语句 ## `if` 是条件语句。 `if` 语句的语法是: ```go if condition { } ``` 如果 `condition` 为真,则执行 `{` 和 `}` 之间的代码。 不同于其他语言,例如 `C` 语言,`Go` 语言里的 `{ }` 是必要的,即使在 `{ }` 之间只有一条语句。...
# Go经典入门6:包 ## 什么是包,为什么使用包? 到目前为止,我们看到的 `Go` 程序都只有一个文件,文件里包含一个 `main` 函数和几个其他的函数。在实际中,这种把所有源代码编写在一个文件的方法并不好用。以这种方式编写,代码的重用和维护都会很困难。而包(`Package`)解决了这样的问题。 包用于组织 `Go` 源代码,提供了更好的可重用性与可读性。由于包提供了代码的封装,因此使得 `Go` 应用程序易于维护。 例如,假如我们正在开发一个 `Go` 图像处理程序,它提供了图像的裁剪、锐化、模糊和彩色增强等功能。一种组织程序的方式就是根据不同的特性,把代码放到不同的包中。比如裁剪可以是一个单独的包,而锐化是另一个包。这种方式的优点是,由于彩色增强可能需要一些锐化的功能,因此彩色增强的代码只需要简单地导入(我们会在随后讨论)锐化功能的包,就可以使用锐化的功能了。这样的方式使得代码易于重用。 我们会逐步构建一个计算矩形的面积和对角线的应用程序。 通过这个程序,我们会更好地理解包。 ## main 函数和 main 包 所有可执行的 `Go` 程序都必须包含一个 `main` 函数。这个函数是程序运行的入口。`main` 函数应该放置于...
# Go经典入门5:函数 ## 函数是什么? 函数是一块执行特定任务的代码。一个函数是在输入源基础上,通过执行一系列的算法,生成预期的输出。 ## 函数的声明 在 `Go` 语言中,函数声明通用语法如下: ```go func functionname(parametername type) returntype { // 函数体(具体实现的功能) } ``` 函数的声明以关键词 `func` 开始,后面紧跟自定义的函数名 `functionname` (函数名)。函数的参数列表定义在 `(` 和 `)` 之间,返回值的类型则定义在之后的 `returntype`...
# Go经典入门4:类型 下面是 `Go` 支持的基本类型: - `bool` - 数字类型 - `int8`, `int16`, `int32`, `int64`, `int` - `uint8`, `uint16`, `uint32`, `uint64`, `uint` - `float32`, `float64` - `complex64`, `complex128` - `byte` -...
# Go经典入门:常量 ## 定义 在 `Go` 语言中,术语"常量"用于表示固定的值。比如 `5` 、`-89`、 `I love Go`、`67.89` 等等。 看看下面的代码: ```go var a int = 50 var b string = "I love Go" ``` 在上面的代码中,变量 `a`...
# Go经典入门:变量 ## 变量是什么 变量指定了某存储单元(`Memory Location`)的名称,该存储单元会存储特定类型的值。在 `Go` 中,有多种语法用于声明变量。 ## 声明单个变量 `var name type` 是声明单个变量的语法。 ```go package main import "fmt" func main() { var age int // 变量声明 fmt.Println("my age is",...
# Go经典入门:介绍、安装和Hello World ## Golang 是什么 `Go` 亦称为 `Golang` (译注:按照 `Rob Pike` 说法,语言叫做 `Go`,`Golang` 只是官方网站的网址),是由谷歌开发的一个开源的编译型的静态语言。 `Golang` 的主要关注点是使得高可用性和可扩展性的 `Web` 应用的开发变得简便容易。(译注:`Go` 的定位是系统编程语言,只是对 `Web` 开发支持较好) ## 为何选择 Golang 既然有很多其他编程语言可以做同样的工作,如 `Python`,`Ruby`,`Nodejs` 等,为什么要选择 `Golang` 作为服务端编程语言?...
# Go 语言中关于包导入必学的8个知识点 ## 单行导入与多行导入 在 `Go` 语言中,一个包可包含多个 `.go` 文件(这些文件必须得在同一级文件夹中),只要这些 `.go` 文件的头部都使用 `package` 关键字声明了同一个包。 导入包主要可分为两种方式: - 单行导入 ```go import "fmt" import "sync" ``` - 多行导入 ```go import( "fmt" "sync" )...
# Go语言里的空接口 ## 什么是空接口? 空接口是特殊形式的接口类型,普通的接口都有方法,而空接口没有定义任何方法口,也因此,我们可以说所有类型都至少实现了空接口。 ```go type empty_iface interface {} ``` 每一个接口都包含两个属性,一个是值,一个是类型。 而对于空接口来说,这两者都是 `nil`,可以使用 `fmt` 来验证一下 ```go package main import ( "fmt" ) func main() { var i interface{} fmt.Printf("type:...
# Go语言中的编码规范 每个语言都有自己特色的编码规范,学习该语言的命名规范,能让你写出来的代码更加易读,更加不容易出现一些低级错误。 ## 文件命名 - 由于 `Windows` 平台文件名不区分大小写,所以文件名应一律使用小写 - 不同单词之间用下划线分词,不要使用驼峰式命名 - 如果是测试文件,可以以 `_test.go` 结尾 - 文件若具有平台特性,应以 `文件名_平台.go` 命名,比如 `utils_windows.go`,`utils_linux.go`,可用的平台有:`windows`, `unix`, `posix`, `plan9`, `darwin`, `bsd`, `linux`, `freebsd`, `nacl`, `netbsd`, `openbsd`,...