SherlockGy's Blog

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Go语言学习之旅21——结构体

发表于 2019-03-28 | 更新于 2019-03-31 | 分类于 程序人生 > Golang
本文字数: 662 | 阅读时长 ≈ 1 分钟

结构体的写法与初始化

1
2
3
4
5
6
7
8
9
10
11
12
type Student struct {
name string
id int
age int // 代表字符类型
sex byte
}

func main() {
// 初始化结构体1,顺序初始化
var stu1 Student = Student{"tom", 101, 13, 'm'}
fmt.Println(stu1) // {tom 101 13 109}
}

注意:结构体的成员不需要使用var关键字来声明;字符类型的sex将会打印对应ASCII码,如果你需要声明为汉子,则需要使用rune类型,代表一个 UTF-8 字符

1
2
3
4
5
func main() {
// 初始化结构体2,指定初始化
stu2 := Student{name: "tom", age: 13}
fmt.Println(stu2) // {tom 0 13 0}
}
阅读全文 »

Go语言学习之旅20——生成随机数

发表于 2019-02-01 | 更新于 2019-02-02 | 分类于 程序人生 > Golang
本文字数: 585 | 阅读时长 ≈ 1 分钟

生成随机数我们需要设置一个随机数的seed(种子),不过要注意的是,相同的seed每次生成的随机数是同一组的

为了保证随机数能够更加随机且无规律,我们可以使用当前时间作为随机数的seed

具体看代码:

1
2
3
4
5
6
7
8
9
10
11
12
func main() {
rand.Seed(time.Now().UnixNano()) // 设置种子数为当前时间
for i := 0; i < 5; i++ {
fmt.Println(rand.Int()) // 生成一组大数随机数
}
}

// 8850436535121827008
// 6377841482169103266
// 4457291880434124677
// 3123534825015967222
// 3174816732139892017
阅读全文 »

Go语言学习之旅19——new函数的使用

发表于 2019-02-01 | 更新于 2019-06-16 | 分类于 程序人生 > Golang
本文字数: 575 | 阅读时长 ≈ 1 分钟

声明一个指针类型的变量,我们会这么做:

1
2
3
4
5
func main() {
var a *int
fmt.Println(a)
fmt.Printf("%T", a)
}

输出

1
2
<nil>
*int

由此可见,a确实是一个int类型的指针,但是并没有为其分配内存空间,所以在我们试图打印其内存地址的时候,输出结果是<nil>

如果我们需要修改该指针指向的值,就不得不为其先分配一个内存地址,我们知道:当变量被声明的时候,会创建内存并分配地址,所以方法一如下:

1
2
3
4
5
6
7
func main() {
var a *int
b := 10
a = &b // 将变量b的地址赋给指针a
fmt.Println(a)
fmt.Println(*a)
}

输出:

1
2
0xc000090000
10

但是显然这样做太麻烦了:我们需要创建一个中间变量b才能完成给指针类型分配内存地址的工作,这时候,就需要使用new函数了

阅读全文 »

Go语言学习之旅17——init函数

发表于 2019-01-26 | 分类于 程序人生 > Golang
本文字数: 439 | 阅读时长 ≈ 1 分钟

init函数将会在程序运行的一开始执行,如果导入了其他的依赖包,依赖包的init函数也会自动执行,即使没有使用依赖包内的任何函数

由于go语言导入的包不使用就会报错,因此需要在包名前加上_,代表引入此包仅为了执行其init函数,而无需调用其他方法

阅读全文 »

Go语言学习之旅18——指针

发表于 2019-01-26 | 更新于 2019-02-01 | 分类于 程序人生 > Golang
本文字数: 619 | 阅读时长 ≈ 1 分钟

Go语言的指针还是比较简单的,我们首先先了解基本的使用:

取址运算符:&

取出变量的内存地址:

1
2
3
4
func main() {
var a int = 10
fmt.Println(&a) // 输出:0xc000070008
}

指针类型:*int

定义一个指针类型并接受一个内存地址作为该变量的值:

1
2
3
4
5
6
func main() {
var a int = 10
var p *int
p = &a
fmt.Println(*p) // 取指针类型变量所指向的内存地址里,保存的值
}
阅读全文 »
1…789…23
SherlockGy

SherlockGy

Keep thinking different...

111 日志
38 分类
62 标签
RSS
GitHub E-Mail
友情链接
  • GoLang-飞雪无情的博客
  • Java-酷壳
  • Python-静觅丨崔庆才的个人博客
  • 掘金
  • GoLang中国
  • GoLang中文社区
  • V2EX
  • Microsoft Docs
  • Go语言圣经
© 2020 SherlockGy | 191k | 2:false
由 Hexo 强力驱动 v3.7.1
|
主题 — NexT.Pisces v6.3.0