2022-4-6 实习Day8

今天把测试环境搭建起来了,并且把阿里巴巴代码规约看完了。测试环境搭建完毕后,手动发起了一笔交易,和数据库进行了校验。阅读内部系统源代码,了解包组成结构。明天重点内容是调试代码,并且了解其执行逻辑。

Golang编程学习(part 3)

1、string 转基本数据类型的注意事项

在将String类型转为基本数据类型时,要确保String类型能够转成有效的数据,比如我们可以把 "123"转成一个整数,但是不能把"hello" 转成一个整数,如果这样做,Golang直接将其转成0,其他类型,没转成功也是一样的道理。float => 0 bool=>false

案例说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package main

import (
"fmt"
"strconv"
)

func main() {
str := "hello"
n, _ := strconv.ParseInt(str, 10, 64)

fmt.Printf("n type %T n=%v ", n, n) //n type int64 n=0

}

2、指针的基本介绍

①指针类型,指针变量存的是一个地址,这个地址指向的空间存的才是值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package main

import "fmt"

func main() {

//基本数据类型在内存中的布局
var i int = 10

//i的内存地址是什么,&i
fmt.Println("i的地址=", &i)

//下面的 var ptr *int=&i
//1、ptr是一个指针变量
//2、ptr的类型是 *int
//3、ptr本身的值&i
var ptr *int = &i
fmt.Printf("ptr=%v\n", ptr)
fmt.Printf("ptr 的地址=%v\n", &ptr)
fmt.Printf("ptr 指向的值=%v\n", *ptr)

}


i的地址= 0xc0000160a8
ptr=0xc0000160a8
ptr 的地址=0xc000006030
ptr 指向的值=10

3、指针的使用细节

① 值类型,都有对应的指针类型, 形式为 *数据类型,比如 int 的对应的指针就是 *int, float32
对应的指针类型就是 *float32, 依次类推。
② 值类型包括:基本数据类型 int 系列, float系列,bool, string数组结构体struct

4、值类型和引用类型

① 值类型:基本数据类型 int 系列, float 系列, bool, string 、数组和结构体 struct

值类型:变量直接存储值,内存通常在栈中分配

② 引用类型:指针、slice 切片、map、管道 chan、interface 等都是引用类型

引用类型:变量存储的是一个地址,这个地址对应的空间才真正存储数据(值),内存通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,由 GC 来回收