news 2026/4/15 16:32:36

golang学习笔记: 类型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
golang学习笔记: 类型

基本类型

1. 布尔类型

varbbool=truevarflag=false// 类型推断

2. 数值类型

整数类型
variint// 平台相关,32或64位vari8int8// -128 ~ 127vari16int16// -32768 ~ 32767vari32int32// -2^31 ~ 2^31-1vari64int64// -2^63 ~ 2^63-1varuuint// 无符号varu8uint8// 0 ~ 255varu16uint16// 0 ~ 65535varu32uint32// 0 ~ 2^32-1varu64uint64// 0 ~ 2^64-1varrrune='A'// int32 的别名,表示 Unicode 码点varbybyte=0x41// uint8 的别名
浮点数
varf32float32=3.14varf64float64=3.1415926535
复数
varc64complex64=1+2ivarc128complex128=complex(3,4)

3. 字符串类型

varsstring="Hello"varmultiline=`多行 字符串`

复合类型

1. 数组

vararr1[3]int=[3]int{1,2,3}arr2:=[5]string{"a","b","c"}arr3:=[...]int{1,2,3,4,5}// 编译器推断长度

2. 切片(动态数组)

varslice1[]intslice2:=[]string{"a","b","c"}slice3:=make([]int,5)// 长度5,容量5slice4:=make([]int,5,10)// 长度5,容量10// 从数组创建arr:=[5]int{1,2,3,4,5}slice5:=arr[1:3]// [2, 3]

3. 映射(Map)

varm1map[string]intm2:=map[string]int{"a":1,"b":2}m3:=make(map[string]int)m3["key"]=100

4. 结构体

typePersonstruct{NamestringAgeintAddressstring}p1:=Person{"张三",25,"北京"}p2:=Person{Name:"李四",Age:30}p3:=&Person{}// 指针

5. 指针

varp*intx:=10p=&x*p=20// 修改 x 的值

特殊类型

1. 函数类型

typeFuncTypefunc(int,int)intvaradd FuncType=func(a,bint)int{returna+b}

2. 接口类型

typeWriterinterface{Write([]byte)(int,error)}typeReaderinterface{Read([]byte)(int,error)}

3. 通道类型

varch1chanint// 双向通道varch2chan<-string// 只写通道varch3<-chanfloat64// 只读通道ch4:=make(chanint)// 无缓冲通道ch5:=make(chanint,10)// 缓冲大小为10

类型别名和自定义类型

类型别名

typeMyInt=int// MyInt 和 int 是同一类型

自定义类型

typeMyInt2int// MyInt2 是新类型,需要类型转换vara MyInt2=10varbint=int(a)// 需要显式转换

类型零值

variint// 0varffloat64// 0.0varbbool// falsevarsstring// ""varp*int// nilvarsl[]int// nilvarmmap[string]int// nilvarcchanint// nilvarifaceinterface{}// nil

类型转换

variint=42varffloat64=float64(i)varuuint=uint(f)// 字符串转换s:=string(65)// "A"num:=int('A')// 65// strconv 包import"strconv"str:=strconv.Itoa(123)// "123"num,_:=strconv.Atoi("456")// 456

类型断言

variinterface{}="hello"s:=i.(string)// 断言s,ok:=i.(string)// 安全断言// 类型 switchswitchv:=i.(type){caseint:fmt.Println("int:",v)casestring:fmt.Println("string:",v)default:fmt.Println("unknown")}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 20:09:40

低延迟交互实现原理:LobeChat前端性能优化揭秘

低延迟交互实现原理&#xff1a;LobeChat前端性能优化揭秘 在AI助手逐渐从“能用”走向“好用”的今天&#xff0c;用户早已不再满足于简单的问答响应。他们期待的是类人般的流畅对话体验——打字机式的逐字输出、输入即反馈的界面响应、打开即可见的会话历史。这种“丝滑感”&…

作者头像 李华
网站建设 2026/4/14 16:11:30

“金融向善,金融向实”,浙商银行守正创新出硕果

在武汉光谷城&#xff0c;持续拓新的“稻谷造血”&#xff0c;一举打破我国血液制品长期依赖进口的被动局面&#xff1b;被调侃为“有女不嫁塔后坳”的台州天台塔后村&#xff0c;正从贫困乡村变身致富样本&#xff1b;加速“走出去”的嘉兴外贸企业&#xff0c;伴随服务效率的…

作者头像 李华
网站建设 2026/4/14 4:27:51

Java 异步操作全解析:从基础到高级实践

Java 对异步操作的支持随版本迭代不断完善&#xff0c;从早期的手动线程管理&#xff0c;到 Java 8 引入的 CompletableFuture&#xff08;核心&#xff09;&#xff0c;再到异步 IO、框架层面的封装&#xff0c;形成了一套覆盖 “基础线程异步→异步结果编排→异步 IO→业务层…

作者头像 李华
网站建设 2026/4/13 17:28:46

全球USB厂商与设备ID大全(2017年更新)

全球USB厂商与设备ID更新&#xff1a;AI视频生成设备的标准化接入 在智能硬件快速演进的今天&#xff0c;USB接口早已不再局限于传输数据或充电。越来越多具备专用计算能力的设备通过这一通用接口融入主流操作系统生态——从加密狗到AI加速棒&#xff0c;从虚拟串口到实时渲染…

作者头像 李华
网站建设 2026/4/13 17:22:44

ACE-Step:5秒生成原创音乐,重塑短视频创作

ACE-Step&#xff1a;5秒生成原创音乐&#xff0c;重塑短视频创作 在短视频日更成常态的今天&#xff0c;创作者早已习惯了“上午拍、下午剪、晚上爆”的节奏。但无论剪辑软件多智能、拍摄设备多先进&#xff0c;背景音乐始终是个绕不开的坎——想找一首不侵权又贴合情绪的BGM…

作者头像 李华