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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:git status && fetch
下一篇:go语言(二)快速入门

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.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