golang学习笔记3-变量的声明

注:本人已有C,C++,Python基础,只写本人认为的重点。

一、变量的三种声明方式

go 复制代码
func main() {
	//方式1,指定数据类型,声明后若不赋值,使用默认值
	//比如int的默认值是0,string的默认值是空串
	var i int = 1
	//方式2,类型推导,根据值自行判定变量类型
	var num = 10.11
	//方式3,省略var的类型推导(短变量声明)
	//下面的方式与var name string;name = "tom"等价
	name := "tom"
}

特别注意go的局部变量声明后,若它再次被赋值,不算使用!会报错!只有该变量放在等号右边或用于函数调用才算使用。变量在等号右边的情况有两种:一是赋值自己,比如自增,二是赋值给其他变量。

二、多变量的声明

go 复制代码
func main() {
	//方式1,指定数据类型,从左到右依次赋值,下同
	var n1, n2, n3 int = 1, 2, 3
	//方式2,类型推导
	var n1, name , n3 = 100, "tom", 888
	//方式3,省略var的类型推导(短变量声明)
	n1, name , n3 := 100, "tom~", 888
}

曾经有道面试题,给定两个变量,要求不使用中间变量的情况下交换它们。有种方法是a=a+b;b=a-b;a=a-b;其实不用这么麻烦,只需一句就行了,这也是python的语法:a,b=b,a。

三、全局变量的声明

go 复制代码
package main

import "fmt"

//定义全局变量
var n = 100
var name = "jack"

//上面的声明方式,也可以改成一次性声明
var (
	n2    = 300
	name2 = "mary"
)

func main() {
}

特别注意全局变量无法用短变量声明,必须显示赋值!

相关推荐
孤寂大仙v1 小时前
【Linux笔记】理解文件系统(上)
linux·运维·笔记
ianozo1 小时前
数据结构--【栈与队列】笔记
数据结构·笔记
极客BIM工作室2 小时前
机器学校的考试风波:误差分析、过拟合和欠拟合
笔记·机器学习
flashier3 小时前
C语言 进阶指针学习笔记
c语言·笔记·学习
大白的编程日记.3 小时前
【Linux学习笔记】Linux基本指令分析和权限的概念
linux·笔记·学习
螺旋式上升abc3 小时前
GO语言学习笔记
笔记·学习·golang
W起名有点难3 小时前
前端学习——CSS
前端·css·学习
Moonnnn.4 小时前
51单片机——汇编工程建立、仿真、调试全过程
汇编·笔记·嵌入式硬件·学习·51单片机
画个逗号给明天"4 小时前
TinyWebServer项目笔记——02 半同步半反应堆线程池
笔记
不会聊天真君6474 小时前
HTML5(Web前端开发笔记第一期)
笔记·html5