1. 什么是变量
变量就是用描述性的名字指代内存的地址,而不再使用数字。
内存上的内一个字节,有一个编号,这个编号就是地址,类似于房间的门牌号。
但是记住很多数字对人类来说是非常困难的,人类更擅长记一个有表意性的名字。
变量可以理解为一个“有名称的容器”,用于装各种不同类型的数据。
编程人员通过对变量的访问和修改,操作内存中的数据。
package main import "fmt" func main() { /* 变量:variable 概念:一小块内存,用于存储数据,在程序运行过程中数值可以改变 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。 变量可以通过变量名访问。 Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。 使用: step1:变量的声明,也叫定义 第一种:var 变量名 数据类型 变量名 = 赋值 var 变量名 数据类型 = 赋值 第二种:类型推断,省略数据类型 var 变量名 = 赋值 第三种:简短声明,省略var 变量名 := 赋值 step2:变量的访问,赋值和取值 直接根据变量名访问 go的特性: 静态语言:强类型语言 go,java,c++,c#。。 动态语言:弱类型语言 JavaScript,php,python,ruby。。 */ //第一种:定义变量,然后进行赋值 var num1 int num1 = 30 fmt.Printf("num1的数值是:%d ",num1) //写在一行 var num2 int = 15 fmt.Printf("num2的数值是:%d ",num2) //第二种:类型推断 var name = "王二狗" fmt.Printf("类型是:%T,数值是:%s ",name,name) //第三种,简短定义,也叫简短声明 sum := 100 fmt.Println(sum) //多个变量同时定义 var a, b, c int a = 1 b = 2 c = 3 fmt.Println(a,b,c) var m, n int = 100,200 fmt.Println(m,n) var n1,f1,s1 = 100,3.14,"Go" fmt.Println(n1,f1,s1) var ( studentName = "李小花" age = 18 sex = "女" ) fmt.Printf("学生姓名:%s,年龄:%d,性别:%s ",studentName,age,sex) }
package main import "fmt" var a = 1000 //全局变量 var b int = 2000 //c := 3000 //语法错误 func main() { /* 注意点: 1.变量必须先定义才能使用 2.变量的类型和赋值必须一致 3.同一个作用域内,变量名不能冲突 4.简短定义方式,左边的变量至少有一个是新的 5.简短定义方式,不能定义全局变量 6.变量的零值,就是默认值 整型:默认值是0 浮点类型:默认是0 字符串:默认值"" */ var num int num = 100 fmt.Printf("num的数值是:%d,地址是:%p ",num, &num) num = 200 fmt.Printf("num的数值是:%d,地址是:%p ",num, &num) // fmt.Println(num2) //undefined: num2 var name string //name = 100 //fmt.Println(name) //cannot use 100 (type int) as type string in assignment name = "王二狗" fmt.Println(name) //var name string = "李小花" //fmt.Println(name) num ,name ,sex := 1000,"李小花" , "男" //no new variables on left side of := fmt.Println(num,name,sex) fmt.Println(a) fmt.Println("----------------------") var m int //整数,默认值是0 fmt.Println(m) var n float64 //0.0-->0 fmt.Println(n) var s string //"" fmt.Println(s) var s2 []int //切片[] fmt.Println(s2) //[] fmt.Println(s2 == nil) //true //var sum = 100 //sum declared and not used }