Go语言学习:每日一练2

Go语言学习:每日一练2

目录

结构体

go 复制代码
//定义
type Vertex struct {
	X, Y int
}
//使用
func main() {
v1 := Vertex{1, 2}
fmt.Println(v.X)
//别的实例化方式
var v2 Vertex
v2 := *new(Vertex)  //返回的是指针
}

零值

结构体的零值并非是nil,而是一个其内部各个字段取各自零值的实例

go 复制代码
func main() {
	var p Person
	p1 := p
	p1.Name = "mike"
	fmt.Println(p.Name)
	fmt.Println(p1.Name)
}

type Person struct {
	Name string
}

数组

数组的零值类似于结构体,会根据其类型设置分别设置每个元素的零值

var array [3]int

//[0, 0, 0]

go 复制代码
var array [3]int

//创建
//1.声明的时候初始化
array := [6]int{1, 2}
//2.用new
array := *new([3]int)

切片

切片的零值是nil

go 复制代码
var slice []int

//创建
//1.声明的时候初始化
slice := []int{1, 2}
//2.用make
slice := make([]int, 0)
//3.从数组创建
slice := array[0:2]

映射

零值是nil

go 复制代码
//声明
var m map[string]string

//创建map
//1. 使用字面量
m := map[string]string{
"a" : "aaaa",
"b": "bbbb".
}
//2. 使用make
m := make(map[string]string)

指针

类型*T是指向T类型值的指针,其默认值为nil。指针也是一种类型。

操作符:

&操作符会生成一个指向其操作对象的指针。

*操作符表示指针指向的底层值。

go 复制代码
var p *int

a := 3
p = &a
b := *p

各个类型的零值一览


👑 天下英雄出我辈,一入江湖岁月催 我是热爱生活的「 无间行者 」,努力把实践过的解决方案分享给大家 如果这篇文章对你有用,一键三连,感谢你的鼓励,让我知道你在看


相关推荐
Python私教1 分钟前
GenericAgent PySide6 桌面应用深度解析:悬浮按钮 + 聊天面板的原生 Qt 方案
开发语言·数据库·qt
矢志航天的阿洪1 分钟前
用 MATLAB 控制 STK Aviator:从零搭建一个 AWACS 支援作战场景
开发语言·matlab
澈20715 分钟前
STL迭代器:容器遍历的万能钥匙
开发语言·c++
lzj_pxxw34 分钟前
W25Q64存储芯片 软件设计刚需常识
stm32·单片机·嵌入式硬件·mcu·学习
Slow菜鸟1 小时前
AI学习篇(四) | AI设计类Skills推荐清单(2026年)
人工智能·学习
念恒123061 小时前
Python(列表进阶)
python·学习
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题】【Java基础篇】第24题:Java面向对象有哪些特征
java·开发语言·后端·面试
geovindu1 小时前
go: Strategy Pattern
开发语言·设计模式·golang·策略模式
27669582921 小时前
阿里最新acw_sc__v2 分析
开发语言·python·acw_sc__v2·acw_sc__v2逆向·acw_sc__v2算法·acw_sc__v2算法分析·cookie逆向
dog2501 小时前
圆锥曲线和二次曲线
开发语言·网络·人工智能·算法·php