Skip to content

Commit

Permalink
doc: update golang.md (#282)
Browse files Browse the repository at this point in the history
  • Loading branch information
jaywcjlove committed Feb 2, 2023
1 parent 6614543 commit 358d8f4
Showing 1 changed file with 22 additions and 15 deletions.
37 changes: 22 additions & 15 deletions docs/golang.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,7 @@ fmt.Println("2d: ", twoDimension)

### 指针(Pointers)
<!--rehype:wrap-class=col-span-2-->

```go
func main () {
b := *getPointer()
Expand All @@ -199,21 +200,25 @@ func getPointer () (myPointer *int) {
//不能直接进行操作,包括读写
var p *int
*p = 123 // panic nil pointer
```

---

```go
//而用new返回的是有默认值的指针, 为数据类型的默认值
func main(){
//有一块内存存放了10,它的地址由系统自动分配,别名是a
a := 10
//内存存放的10变成了20
a = 20
var p *int
p = &a //或者直接写 p := &a
//上面的p是一个指针,通过 *p 的方式同样可以访问 变量a指向 的内存
/*当你动态申请内存的时候,指针的存在意义之一就被体现出来了*/
ptr := new(int)
//申请了一块内存空间,没有办法指定别名,new()返回内存地址,用指针接收
//此时并没有变量能直接指向这块内存,所以只能通过内存地址来访问
//有一块内存存放了10,它的地址由系统自动分配,别名是a
a := 10
//内存存放的10变成了20
a = 20
var p *int
p = &a //或者直接写 p := &a
//上面的p是一个指针,通过 *p 的方式同样可以访问 变量a指向 的内存

/*当你动态申请内存的时候,指针的存在意义之一就被体现出来了*/
ptr := new(int)
//申请了一块内存空间,没有办法指定别名,new()返回内存地址,用指针接收
//此时并没有变量能直接指向这块内存,所以只能通过内存地址来访问
}
```

Expand Down Expand Up @@ -243,15 +248,17 @@ const s string = "constant"
const Phi = 1.618
const n = 500000000
const d = 3e20 / n
```

常量声明可以使用 iota常量生成器 初始化,它用于
生成一组以相似规则初始化的常量,但是不用每行都
写一遍初始化表达式。
注意:
1.在一个const声明语句中,在第一个声明的常量
所在的行,iota被置为0,然后在每一个有常量声明的行加一。
2.写在同一行的值是相同的

1. 在一个const声明语句中,在第一个声明的常量所在的行,iota被置为0,然后在每一个有常量声明的行加一。
2. 写在同一行的值是相同的

```go
const (
a = iota
b
Expand Down

0 comments on commit 358d8f4

Please sign in to comment.