go语言变量

Posted 漫长学习路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言变量相关的知识,希望对你有一定的参考价值。

    变量是所有语言中最基本的元素,程序可以通过定义一个变量来申请一块数据的内存空间。GO语言的变量使用方式和C语言接近,但更具备强大的灵活性。

1.变量声明

GO语言的变量声明方式与C和C++语言有明显的不同。对于纯粹的变量声明,GO语言引入了关键字var,而类型信息放在变量名之后,示例如下:

	var  v1 int //整型
	var v2 stirng //字符型
	var v3[10]int  //数组
	var v4 []int //数组切片
	var v5 struct
		f int
	
	var v6 *int //指针
	var v7 map[string]int //map key为string类型 value为int类型
	var v8 func(a int) int

变量语句声明不需要使用分号作为结束符。与其他面向对象语言相比,GO语言摒弃了语句必须以分号作为语句结束标记的习惯。

var关键字的另一种用法是可以将若干个需要声明的变量放在一起,免得程序员需要重复写var关键字。

var
		v1 int
		v2 stinrg
	
	

2 变量初始化

变量初始化的时候可以不再使用var关键字

import (
	"fmt"
)

func main() 

	var v1 int = 10
	var v2 = 20
	v3 := 30

	fmt.Println(v1)
	fmt.Println(v2)
	fmt.Println(v3)

这里要注意,如果光声明不使用go语言会提示错误。以上三种用法的效果是完全一样的,除了第三种声明方式不能用于声明全局变量。指定类型已经不再是必须得了,甚至关键字都可以省略,GO编译器可以从初始化表达式的右值推导出该变量应该声明为哪种类型,这让Go语言看起来有点像动态类型语言,但是其实Go语言是一个强类型的语言(静态类型)。

3.变量赋值

在Go语法中,变量初始化和变量赋值是两个不同的概念。下面为声明一个变量之后的赋值过程

	var v4 int
	v4 = 111

Go语言的变量赋值与多数语言一致,但Go语言中提供了多重赋值功能,比如下面这个交换i和j变量的语句:

i, j = j, i

在不支持多重赋值的语言中,交互两个变量的内容需要引入一个中间变量

t=i;i=j;j=t;
4.匿名变量

在使用传统的强类型语言编程,例如java的时候,经常会出现这种情况,即在调用函数时为了获取一个值,却因为该函数返回多个值不得不去定义一堆没用的变量,在Go中这种情况可以通过结合使用多重返回和匿名变量来避免这种丑陋的写法,让代码看起来更加优雅。

func getName() (firstName, lastName, nickName string) 
	return "aaaa", "bbbb", "cccc"


//Test()和Test2()在包外也可见
func Test() int 
	_, _, nickName := getName() //GetName调用只选择需要的变量将他返回
	fmt.Println("nikName = ", nickName, "\\n")
	return 0
这种写法可以让代码非常清晰,基本上屏蔽掉了可能混淆代码阅读者视线的内容,从而大幅度降低沟通的复杂度和代码维护的难度。

以上是关于go语言变量的主要内容,如果未能解决你的问题,请参考以下文章

网易有道CEO周枫:Go语言继承了C语言的灵活简单

12. Go 语言文件处理

使用GO语言灵活批量ssh登录服务器执行操作

Go语言基础之结构体

Go语言开发的灵活管理资源的开源CMDB

9.Go语言基础之结构体