Golang学习 day1变量类型
Posted 星际迷航‖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang学习 day1变量类型相关的知识,希望对你有一定的参考价值。
这里总结的Golang 笔记只适合有点编程基础的人看,比如Java
变量类型
变量、类型
声明变量的三种方法
局部变量
局部变量一般被定义在函数之中,意味着他只作用在这个函数之中,其他函数中不可以再用这个变量,可以在当前函数中重新声明一个一样的变量使用。以下是局部变量声明方式。
var j int
fmt.Println(j)
var i = 10.1
fmt.Printf("i的类型:%T\\n", i) // float64
name := "tom"
fmt.Printf("name的类型:%T\\n", name) // string
全局变量
全局变量意为可以作用于整个go文件中,任意地方都可以使用这个变量,当然还可以在方法中重新声明使用,这里优先使用的是局部变量,然后是全局变量。这里需要补充一下,就是其他go文件也可以调用这个变量,那么将这个变量中首字母变为大写(这里大写意为公有类似于Java之中的public,小写意为私有类似于Java之中)以下声明全局变量。
var(
address = "xian"
// 这里其他文件中是可以调用的
Age = 5000
number = 2
)
类型
值类型:值类型通常是在栈中分配内存结构,变量直接存储值 int、float、bool、string、数组、结构体
引用类型:变量存储的是一个地址, 这个地址存储的值才是真正的值,内存通常在堆上进行分配,当没有引用去引用这个值的时候,这个值就会变为垃圾,通常由GC回收。指针、slice切片、map、管道channel、interface
整型
golang之中整型分为int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,byte。这里int8占一个字节以此类推int64就占八个字节。
浮点型
浮点类型float32可以理解为单精度,float64 可以理解双精度。一把情况下我们建议使用float64精度更高。
func main()
var a float32 = -123.0000901
var b float64 = -123.0000901
fmt.Println("a: ", a)
fmt.Println("b: ", b)
如上代码打印的结果如下:
使用了float32造成精度丢失。
字符类型
golang中是没有专门的字符类型,如果要存储字符的话,一般使用byte来存储。golang中更没有字符串,字符串是由一串固定长度的字符连接起来的字符序列。
var char byte = 'a'
var chars byte = '是'
如上不能第一种是对的,第二种是错的,golang中使用的UTF-8编码,汉字的UTF-8对应的值已经超过了127。所以是错的,如果要使用的话,可以将byte修改为int。
字符串的使用
以下有两种字符串的用法
// 第一种
var str string = "中国万岁"
fmt.Println(str)
// 第二种
var strings string = `var a float32 = -123.0000901
var b float64 = -123.0000901
fmt.Println("a: ", a)
fmt.Println("b: ", b)`
fmt.Println(strings)
注意:golang中的字符串一旦被赋值就不能再被更改了。
字符串的拼接
var str string = "hello"+
"world"
fmt.Println(str)
var a string = "d"
a += "s"
fmt.Println(a)
如何输出字符
使用fmt库中的Printf格式化控制输出,使用%c类似于C语言之中的格式化输出。
布尔类型
bool类型在golang中值允许有两个值,只有true、false。bool只占用一个字节。一般用在逻辑运算。可以使用unsafe.Sizeof(name)查看bool变量占的字节数。
语言规范
-
package 的名称一般情况下和目录名称是相同的即可。
-
变量名、常量名、函数名通常采用驼峰法(首字母大写表示公有的、首字母小写表示私有的)。
-
由26个英文字符,0-9,_去做命名的,且不能以数字开头,严格区分大小写,不能出现空格。
-
不能以系统保留关键字作为标识符,比如break、if等等。
戒骄戒躁,冲冲冲
以上是关于Golang学习 day1变量类型的主要内容,如果未能解决你的问题,请参考以下文章