Go语言的四种声明

目录

1.关于变量的声明

2.关于常数的声明 

3.关于类型的声明

4.关于函数的声明


关于Go的声明主要有四种

1.变量(var)

2.常量(const)

3.类型(type)

4.函数(func)

1.关于变量的声明

声明变量1: var 变量名(驼峰命名法) 数据类型 = 数据值

var name string = "pw"

声明变量2: var(一组变量)

var (
		age   int
		phone string
	)

声明变量3:(短声明变量) 变量名 := 初始值

        关于短声明变量:1.短声明变量会根据初始值自动推导数据类型

                                     2.短声明变量常用于函数内部的局部变量

                                     3.全局变量只能通过var声明,不能使用短声明

sex := "男"

关于变量的默认值:

	/*
		变量的默认值:
			int : 0
			float double : 0.0
			string : 空字符串
			bool : false
			指针、切片、函数等默认为 : null
	*/

 

2.关于常数的声明 

1.const的使用

        与其他语言一样 const代表常量 不能修改

注意:Go语言中浮点型有float32和float64 不存在double和float

const pi float32 = 3.1415926
	const (
		p1 = 1
		p2 = 2
		p3 = 3
	)

2.关于const的无类型常量

        正常情况下常量可以是任何基本数据类型(如int或float64),

        也包括具名的基本类型(如time.Duration)

        但是许多常量并不属于某一个具体的类型,此时这些常量属于:从属类型待定的常量

从属类型待定的常量有6种:

无类型布尔、无类型整数、无类型文字符合、无类型浮点数、无类型复数、无类型字符串

且:这些常量比基础类型的数字精度更高,且算术精度高于原生的机器密度。可以认为它们的精度至少达到256位

关于无类型常量的作用:

1.暂时维持更高的精度

2.用于更多的表达式而不需要转换类型

例如:

    const zib = 1180591620717411303424
	const yib = 1208925819614629174706176
	fmt.Println(zib)

很明显变量zib和yib的精度超过了基本数据类型,所以在输出时会报错

 但是zib和yib的数据依旧会完整的存储 并能进行运算

    const zib = 1180591620717411303424
	const yib = 1208925819614629174706176
	fmt.Println(yib / zib)

Go语言的四种声明_第1张图片

 所以 无类型常量能暂时维持高精度

浮点型常量math.Pi进行赋值时 无需进行类型转换 

但如果math.Pi不属于无类型常量,而属于float64的话,则当赋值的类型不一致时可能导致精度下降或者需要进行类型转换

	//浮点型常量 math.Pi
	var x float32 = math.Pi
	var y float64 = math.Pi
	var z complex128 = math.Pi
	fmt.Println(x, y, z)

3.关于类型的声明

 type主要用于声明新的数据类型

例如当姓名name和密码password都使用string时 在大型开发中可能会混乱

此时可以使用type将二者区分成不同名字的类型 但他们的底层都是string的底层

type Name string
type Password string
var name Name = "pw"
var password Password = "123456"

4.关于函数的声明

 func 函数名 (参数列表parameter-list)  返回值列表result-list{

}

注意点:

1.在接收返回值时,如果返回值列表中有一个或者多个不需要时,可以使用_接收

func text_func(a, b int) (x, y int) {
	return a, b
}

func main() {

	a, _ := text_func(1, 2)
	fmt.Println(a)
}

2.函数主体的大括号{函数主体} 其中左半边括号必须和函数名同行

这是因为go语言编译器会主动把特定符号后的换行符转换为分号

//正确函数样式
func text_func(a, b int) (x, y int) {
	return a, b
}

//错误函数样式 这种情况会报错
func text_funcx(a, b int) (x, y int) 
{
	return a, b
}

你可能感兴趣的:(GO语言学习,开发语言,golang)