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变量占的字节数。

语言规范

  1. package 的名称一般情况下和目录名称是相同的即可。

  2. 变量名、常量名、函数名通常采用驼峰法(首字母大写表示公有的、首字母小写表示私有的)。

  3. 由26个英文字符,0-9,_去做命名的,且不能以数字开头,严格区分大小写,不能出现空格。

  4. 不能以系统保留关键字作为标识符,比如break、if等等。

戒骄戒躁,冲冲冲

以上是关于Golang学习 day1变量类型的主要内容,如果未能解决你的问题,请参考以下文章

Day1 Python笔记

Golang中结构体Struct

Golang中结构体Struct

Golang中结构体Struct

老奶奶可以看懂系列之---Golang的Map映射

老奶奶可以看懂系列之---Golang的Map映射