分享
  1. 首页
  2. 文章

1、Go的变量声明

轮回多桀 · · 1660 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Go的语言结构

1、Go的语言基础部分由这几个部分组成

  • 包声明

  • 引入包

  • 函数

  • 变量

  • 语句&表达式

  • 注释

比如下面这个简单的代码:

func main() {
 fmt.Println("第一个程序")
}

需要注意的是,如果想把单独的.go文件作为独立的可执行文件的时候。需要在代码的第一行加上

package main

文件的入口方法为:

func main(){
 
}

go的语法和c是很像的,但是又没有c那么底层。所以有c基础的人,学习go会特别的快。需要注意的一点是:

go声明变量的时候是把变量类型放在变量的后面的,就像这样:

var a string = "abc"

go也可以不指定数据类型,但是必须要赋值。如果不赋值,自动类型检查就无法起到作用

哪怕你直接这样:

var a=""

附一个空格值给变量也是可以的,就是不能不赋值,也不能为null。而且在go中也没有null的概念,取而代之的是nil:意思为0、无的意思。

还可以使用默认值,就像这样:

var a bool

输出为:false

GO语言变量声明的方式

  • 指定变量类型,声明后如果不做赋值,那么使用默认值。

//没有进行赋值,但是指明了是什么类型、go会自动加上空值。
var a string
  • 不指定变量类型,需要进行赋值操作。

//可以不指定变量类型,通过变量值,go会自行判断该变量的类型。
var a=1
  • 不使用var关键字,直接:=对变量进行赋值操作。

//这种方式是省略了var,但是这种方式能对新的变量使用,对已经声明的变量使用会报错。
a:=1

注:

三种变量的声明形式的作用都是一样的,要么赋值可自动判断其类型,要么不赋值,指定变量类型,就这么两点。还需要注意的是,go的变量是如果被声明了,那么必须使用,不然会报错,如果不想使用可以加上_=varName,表示为已抛弃的变量。

//已声明,但未使用
var a=1
//标识为已抛弃的变量。
_=a

还需要重点强调的点:

  • go的变量在已经被声明后,是不能使用:=再次赋值的。

//这样是错误的
var a=1
a:=2

但是可以使用=为已声明的变量赋新的值。

//这样做是可以的。
var a=1
a=2

而且如果变量值没被使用,那么请加上以抛弃的标识。

_=a

go可以直接声明多个变量,通过函数可以返回多个返回值,比如:

//一次性声明所有的变量类型为string类型
var name1,var name2,var name3 string
//函数返回多个返回值
func getName(name1,name2,name3,name4){
 return "aa","bb","cc","dd"
}
//返回多个返回的值的函数需要用多个变量进行接受
var a, b, c, d = getName()

go可使用var关键字声明全局变量,但是:=这种方式是不能用在全局变量中的。:=只能用在函数体内部。

var (
 a int
 b bool
 xx,yy,dd string="xx","yy","dd"
 //这里省略变量类型也是可以的。
 zz,aa="zz","aa"
)

比如像这样,这样做会报语法错误

var(
 a:=1
)
syntax error: unexpected :=

有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:轮回多桀

查看原文:1、Go的变量声明

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
1660 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏