go语言(三) 基本语法 变量的声明(使用var关键字)
发布日期:2021-06-28 19:45:47
浏览次数:2
分类:技术文章
本文共 1940 字,大约阅读时间需要 6 分钟。
Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性。在数学概念中,变量表示没有固定值且可改变的数。但从计算机系统实现角度来看,变量是一段或多段用来存储数据的内存
基本格式
#声明变量的一般形式是使用 var 关键字var name type
批量格式
var ( a int b string c []float32 d func() bool e struct { x int })
简短格式
除 var 关键字外,还可使用更加简短的变量定义和初始化语法。
名字 := 表达式需要注意的是,简短模式(short variable declaration)有以下限制:定义变量,同时显式初始化。不能提供数据类型。只能用在函数内部。func main() { x:=100 a,s:=1, "abc"}
因为简洁和灵活的特点,简短变量声明被广泛用于大部分的局部变量的声明和初始化。var 形式的声明语句往往是用于需要显式指定变量类型地方,或者因为变量稍后会被重新赋值而初始值无关紧要的地方。
Go语言的基本类型有:
- bool
- string
- int、int8、int16、int32、int64
- uint、uint8、uint16、uint32、uint64、uintptr
- byte // uint8 的别名
- rune // int32 的别名 代表一个 Unicode 码
- float32、float64
- complex64、complex128
//声明表里并打印 b为字符串,默认为空 所有看不见 package mainimport "fmt"func main() { var a int var b string var c float32 var d []int //切片 var e [3]int //数组 fmt.Println(a,b,c,d);}
//格式化输出package mainimport "fmt"func main() { var a int var b string var c float32 var d []int // fmt.Println(a,b,c,d); // T 是代表类型type,v代表value值的意思,q是引用的意思 fmt.Printf("%T,%v \n",a,a); fmt.Printf("%T,%v \n",b,b); fmt.Printf("%T,%q \n",b,b); fmt.Printf("%T,%v \n",c,c); fmt.Printf("%T,%v \n",d,d);}
批量复制给变量
package mainimport "fmt"func main() { //批量声明变量var ( a int b string c float32 d []int) // fmt.Println(a,b,c,d); // T 是代表类型type,v代表value值的意思,q是引用的意思 fmt.Printf("%T,%v \n",a,a); fmt.Printf("%T,%v \n",b,b); fmt.Printf("%T,%q \n",b,b); fmt.Printf("%T,%v \n",c,c); fmt.Printf("%T,%v \n",d,d);}
运行结果一样
初始化默认值
package mainimport "fmt"func main() { //批量声明变量var ( a int = 9501 b string = "这是一个测试" c float32 = 3.1415 d []int e [3]int ) // fmt.Println(a,b,c,d);go // T 是代表类型type,v代表value值的意思,q是引用的意思 fmt.Printf("%T,%v \n",a,a); fmt.Printf("%T,%v \n",b,b); fmt.Printf("%T,%q \n",b,b); fmt.Printf("%T,%v \n",c,c); fmt.Printf("%T,%v \n",d,d); fmt.Printf("%T,%v \n",e,e); fmt.Println(a,b,c,d);}
package mainimport "fmt"func main() { //函数体内短变量赋值,两值交换,无需第三个变量 x := 20 y := 30 x,y = y,x fmt.Println(x,y);}
转载地址:https://blog.csdn.net/xxpxxpoo8/article/details/106259293 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月01日 21时31分20秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
字节跳动社招面试记录,2021年上半年最接地气的Android面经,实战解析
2019-04-29
学习安卓开发!我凭什么拿到了阿里、腾讯、今日头条3家大厂offer?再不刷题就晚了!
2019-04-29
安卓3d游戏开发视频!春招我借这份PDF的复习思路,完整版开放下载
2019-04-29
安卓app开发!大厂Offer拿到手软啊!年薪超过80万!
2019-04-29
安卓ndk开发!高级Android晋升之View渲染机制,附答案
2019-04-29
安卓开发交流!Android程序员架构之路该如何继续学习?含爱奇艺,小米,腾讯,阿里
2019-04-29
安卓开发网!Android面试知识点总结宝典助你通关!含泪整理面经
2019-04-29
安卓开发者!京东面试真题解析,移动架构师成长路线
2019-04-29
查漏补缺!Android开发还会吃香吗?Android面试题及解析
2019-04-29
安卓开发权威指南!2021大厂Android面试经验,不吃透都对不起自己
2019-04-29
java安卓ios开发!字节跳动上千道精选面试题还不刷起来!不吃透都对不起自己
2019-04-29
java安卓开发!那些年Android面试官常问的知识点,送大厂面经一份!
2019-04-29
java开发安卓app!已成功拿下字节、腾讯、脉脉offer,系列篇
2019-04-29
ndk开发字符串转十六进制!我的阿里春招之路分享,帮你突破瓶颈
2019-04-29
上海大厂Android面试经历:这么香的技术还不快点学起来,算法太TM重要了
2019-04-29
不可多得的干货!Flutter中网络图片加载和缓存源码分析,持续更新中
2019-04-29
做了6年的Android,Jetpack-MVVM高频提问和解答,跳槽薪资翻倍
2019-04-29
做了三年Android,记一次字节跳动Android社招面试,架构师必备技能
2019-04-29
农民工看完都会了!Flutter尽然还能有这种操作!终获offer
2019-04-29
安卓开发api!Android面试中常问的MMAP到底是啥东东?附面试题答案
2019-04-29