doc: update golang.md (#282)
This commit is contained in:
		@@ -185,6 +185,7 @@ fmt.Println("2d: ", twoDimension)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
### 指针(Pointers)
 | 
					### 指针(Pointers)
 | 
				
			||||||
<!--rehype:wrap-class=col-span-2-->
 | 
					<!--rehype:wrap-class=col-span-2-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```go
 | 
					```go
 | 
				
			||||||
func main () {
 | 
					func main () {
 | 
				
			||||||
  b := *getPointer()
 | 
					  b := *getPointer()
 | 
				
			||||||
@@ -199,21 +200,25 @@ func getPointer () (myPointer *int) {
 | 
				
			|||||||
//不能直接进行操作,包括读写
 | 
					//不能直接进行操作,包括读写
 | 
				
			||||||
var p *int
 | 
					var p *int
 | 
				
			||||||
*p = 123      // panic   nil pointer
 | 
					*p = 123      // panic   nil pointer
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```go
 | 
				
			||||||
//而用new返回的是有默认值的指针, 为数据类型的默认值
 | 
					//而用new返回的是有默认值的指针, 为数据类型的默认值
 | 
				
			||||||
func main(){
 | 
					func main(){
 | 
				
			||||||
    //有一块内存存放了10,它的地址由系统自动分配,别名是a
 | 
					  //有一块内存存放了10,它的地址由系统自动分配,别名是a
 | 
				
			||||||
    a := 10
 | 
					  a := 10
 | 
				
			||||||
    //内存存放的10变成了20
 | 
					  //内存存放的10变成了20
 | 
				
			||||||
    a = 20
 | 
					  a = 20
 | 
				
			||||||
    var p *int
 | 
					  var p *int
 | 
				
			||||||
    p = &a   //或者直接写 p := &a
 | 
					  p = &a   //或者直接写 p := &a
 | 
				
			||||||
    //上面的p是一个指针,通过 *p 的方式同样可以访问 变量a指向 的内存
 | 
					  //上面的p是一个指针,通过 *p 的方式同样可以访问 变量a指向 的内存
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /*当你动态申请内存的时候,指针的存在意义之一就被体现出来了*/ 
 | 
					  /*当你动态申请内存的时候,指针的存在意义之一就被体现出来了*/ 
 | 
				
			||||||
    ptr := new(int)   
 | 
					  ptr := new(int)   
 | 
				
			||||||
    //申请了一块内存空间,没有办法指定别名,new()返回内存地址,用指针接收
 | 
					  //申请了一块内存空间,没有办法指定别名,new()返回内存地址,用指针接收
 | 
				
			||||||
    //此时并没有变量能直接指向这块内存,所以只能通过内存地址来访问
 | 
					  //此时并没有变量能直接指向这块内存,所以只能通过内存地址来访问
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -243,15 +248,17 @@ const s string = "constant"
 | 
				
			|||||||
const Phi = 1.618
 | 
					const Phi = 1.618
 | 
				
			||||||
const n = 500000000
 | 
					const n = 500000000
 | 
				
			||||||
const d = 3e20 / n
 | 
					const d = 3e20 / n
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
常量声明可以使用 iota常量生成器 初始化,它用于
 | 
					常量声明可以使用 iota常量生成器 初始化,它用于
 | 
				
			||||||
生成一组以相似规则初始化的常量,但是不用每行都
 | 
					生成一组以相似规则初始化的常量,但是不用每行都
 | 
				
			||||||
写一遍初始化表达式。
 | 
					写一遍初始化表达式。
 | 
				
			||||||
注意:
 | 
					注意:
 | 
				
			||||||
  1.在一个const声明语句中,在第一个声明的常量
 | 
					 | 
				
			||||||
  所在的行,iota被置为0,然后在每一个有常量声明的行加一。
 | 
					 | 
				
			||||||
  2.写在同一行的值是相同的
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. 在一个const声明语句中,在第一个声明的常量所在的行,iota被置为0,然后在每一个有常量声明的行加一。
 | 
				
			||||||
 | 
					2. 写在同一行的值是相同的
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```go
 | 
				
			||||||
const (
 | 
					const (
 | 
				
			||||||
    a = iota
 | 
					    a = iota
 | 
				
			||||||
    b
 | 
					    b
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user