doc: update golang.md (#282)
This commit is contained in:
parent
6614543e04
commit
358d8f4e17
@ -185,6 +185,7 @@ fmt.Println("2d: ", twoDimension)
|
||||
|
||||
### 指针(Pointers)
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
|
||||
```go
|
||||
func main () {
|
||||
b := *getPointer()
|
||||
@ -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()返回内存地址,用指针接收
|
||||
//此时并没有变量能直接指向这块内存,所以只能通过内存地址来访问
|
||||
}
|
||||
```
|
||||
|
||||
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user