From 00c6d8fd1c49f74c0000352f931034f945da0030 Mon Sep 17 00:00:00 2001 From: xiemengjun Date: Sat, 25 Aug 2012 19:34:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A02.2=E5=B0=8F=E8=8A=82?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B92.3=E8=8A=82=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E4=B8=BA=E6=B5=81=E7=A8=8B=E5=92=8C=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2.2.md | 192 ++++++++++++++++++++++++++++++++++++++++++- 2.md | 2 +- images/2.2.basic.png | Bin 0 -> 19112 bytes preface.md | 2 +- 4 files changed, 192 insertions(+), 4 deletions(-) create mode 100644 images/2.2.basic.png diff --git a/2.2.md b/2.2.md index 38b1ea28..1a36898d 100644 --- a/2.2.md +++ b/2.2.md @@ -1,26 +1,214 @@ #2.2 GO基础 +这小节我们将要介绍如何定义变量、常量、GO内置类型以及一些GO设计中的技巧 + ##定义变量 +GO语言里面定义变量有好几种方式。 + +最基本的定义变量如下,go变量定义,它的类型是跟在变量后面的,而不是像C一样放前面 + + //定义一个名称为“variable_name”、类型为"type"的变量 + var variable_name type + +定义多个变量 + + //定义三个类型都是"type"的三个变量 + var vname1,vname2,vname3 type + +定义变量并且带有初始化的值 + + //初始化“variable_name”的变量为“value”值,类型是"type" + var variable_name type = value + +同时初始化多个变量 + + /* + 定义三个类型都是"type"的三个变量,并且他们分别初始化相应的值 + vname1为v1,vname2为v2,vname3为v3 + */ + var vname1,vname2,vname3 type= v1, v2, v3 + +你是不是觉得上面这样的定义有点复杂,没关系,因为go语言的设计者也发现这样复杂了,那么让我们来让他变的简单一点,我们可以直接忽略类型这个申明,那么上面的什么变成了如下 + + /* + 定义三个变量,他们分别初始化相应的值 + vname1为v1,vname2为v2,vname3为v3 + 然后他们的类型自动根据初始化的值来确定相应的类型,go会帮你做这件事 + */ + var vname1,vname2,vname3= v1, v2, v3 + +你还是觉得上面的复杂?好吧,我也觉得是,让我们继续简化 + + /* + 定义三个变量,他们分别初始化相应的值 + vname1为v1,vname2为v2,vname3为v3 + 然后他们的类型自动根据初始化的值来确定相应的类型,go会帮你做这件事 + */ + vname1,vname2,vname3 := v1, v2, v3 + +现在是不是看上去非常的简单了,`:=`这个定义直接替代了`var`和`type`,这样的代码是不是很简洁,但是`:=`有一个限制,那就是这个必须用在函数内部,不能在函数外部使用。 + +一个特殊的变量名是`_`(下划线)。任何赋给它的值都被丢弃。在这个例子中,将赋值35赋值给b,同时丢弃34。 _, b := 34, 35 Go的编译器对声明却未使用的变量会在编译阶段报错。下面的代码会产生一个错误:声明了i却未使用 + package main + func main() { var i int } + +##常量 + +所谓常量,也就是在编译阶段就确定下来的值,程序运行时无法改变该值,GO程序里面,常量定义可以是数字类型、Bool、字符串 + +它的语法如下 + + const constant_name = value + +下面是一些什么的例子 + + const PI = 3.1415927 + const i = 10000 + const Max_Thread = 10 + const prefix = 'astaxie_' + +当然如果需要,可以明确指定常量的类型: + + const PI float32 = 3.1415927 + + ##内置基础类型 ###Boolean +对于布尔值,GO的bool类型(如C++)值有:`true`和`false`。他的类型是:`bool` + + //示例代码 + var isactive bool + var enabled, disabled = true, false //忽略类型的申明 + func test(){ + var available bool //一般的申明 + valid := false //忽略var和type的什么 + available = true //赋值操作 + } + + ###数字类型 +对于整数类型,有无符号和有符号两种,GO同时支持`int`和`uint`,这两种类型会根据你的机器来决定是32还是64(32位硬件上是32位的;在64位硬件上是64位的。)。GO里面也有直接定义好位数的类型`rune`, `int8`, `int16`, `int32`, `int64`和`byte`, `uint8`, `uint16`, `uint32`, `uint64`。`rune`是`int`的别称。`byte`是`uint8`的别称。 + +>注意一点就是这些类型之间的变量不允许相互之间赋值、操作,不然会引起编译器的错误。 +> +>如下的代码会出现错误 +> +> var a int8 +> +> var b int32 +> +> c:=a + b + +浮点类型的值有`float32`和`float64`(没有`float`类型)。 + +这就是全部吗?NO!Go支持复数。它的变量类型是`complex128`(64位实数,64位虚数)。如果需要小一些的,还有`complex64`(32为实数,32位虚数)。复数写为`re + imi`,`re`是实数部分,`im`是虚数部分,而i 是标记`i`。使用复数的一个例子: var c complex64 = 5+5i; + fmt.Printf("Value is: %v", c) 将会打印:(5+5i) + ###字符串 -##常量 +前面一节里面说过,字符串都是UTF-8类型的,字符串通过一对`"`来定义,它的类型是string + + //示例代码 + var french_hello string //一般申明一个变量为字符串 + var empty_string string = "" // 什么了一个字符串变量,初始化为空值 + func test(){ + no, yes, maybe := "no", "yes", "maybe" //忽略var和type的申明,同时申明多个变量 + japanese_hello := "Ohaiou" //同上 + french_hello = "Bonjour" //normal assignation + } + +在Go中字符串是不可变的,例如如下的代码编译时会报错 + + var s string = "hello" s[0] = 'c' + 那么如果真的想要修改怎么办呢?如下的代码可以实现 + s := "hello" c := []byte(s) c[0] = 'c' s2 := string(c) fmt.Printf("%s\n", s2) + GO中可以使用`+`来链接两个字符串 + + s := "hello" + m := "world" + a := s + m + fmt.Printf("%s\n", a) + +如果要什么一个多行的字符串怎么办?第一种是通过`+`把字符串串联起来,第二种是通过`\'`来什么 + + s:= "hello" + + "world" + m:=`hello + world` + + +###GO数据底层的存储 + +下面这张图来源于 Russ Cox介绍的GO数据结构,大家可以看到这些基础类型底层都是开辟了一块内存,然后存了相应的值 + +![](images/2.2.basic.png?raw=true) + +###错误类型 +Go内置有一个`error`类型,专门用来处理错误信息,GO的package里面还专门有一个包errors来处理错误 + + err := errors.New("emit macho dwarf: elf header corrupted") + if err != nil { + fmt.Print(err) + } ##一些技巧 ###分组定义 + +Go语言里面针对多个同时什么变量、常量或者import多个包的时候可以采用分组的方式来申明 + +如下的代码 + + import "fmt" + import "os" + + const i = 100 + const pi = 3.1415 + const prefix = "go_" + + var i int + var pi float32 + var prefix string + +可以通过分组的方式写成如下 + + import( + "fmt" + "os" + ) + + const( + i = 100 + pi = 3.1415 + prefix = "go_" + ) + + var( + i int + pi float32 + prefix string + ) + + ###iota枚举 +GO里面有一个关键字`iota`,这个关键字用来什么enum的时候采用,它默认开始值是0,没调用一次加1 + + const( + x = iota //x == 0 + y = iota //y == 1 + z = iota //z == 2 + w // 这里隐示的说w==iota,因此w==3,其实上面y和z可以同样不用=iota + ) + ## links * [目录]() * 上一章: [你好,GO](<2.1.md>) - * 下一节: [函数](<2.3.md>) + * 下一节: [流程和函数](<2.3.md>) ## LastModified * $Id$ \ No newline at end of file diff --git a/2.md b/2.md index b5d3968b..6ab5970c 100644 --- a/2.md +++ b/2.md @@ -3,7 +3,7 @@ ## 目录 * 1. [你好,GO](2.1.md) * 2. [GO基础](2.2.md) - * 3. [函数](2.3.md) + * 3. [流程和函数](2.3.md) * 4. [混合类型](2.4.md) * 5. [高级类型](2.5.md) * 6. [面向对象](2.6.md) diff --git a/images/2.2.basic.png b/images/2.2.basic.png new file mode 100644 index 0000000000000000000000000000000000000000..e1ed9ce7a2774741ba94ade6e3cfe8ac1f1d3455 GIT binary patch literal 19112 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 literal 0 HcmV?d00001 diff --git a/preface.md b/preface.md index c2e34a97..27002466 100644 --- a/preface.md +++ b/preface.md @@ -7,7 +7,7 @@ * 2.[GO语言基础](2.md) - 2.1. [你好,GO](2.1.md) - 2.2. [GO基础](2.2.md) - - 2.3. [函数](2.3.md) + - 2.3. [流程和函数](2.3.md) - 2.4. [混合类型](2.4.md) - 2.5. [高级类型](2.5.md) - 2.6. [面向对象](2.6.md)