GO
--那些打不倒你的,终将让你变的更强
变量
package main
import "fmt"
func main() {
/**
变量
*/
//先定义,后赋值
var num1 int
num1 = 30
fmt.Printf("num1的类型是:%T,数值是: %d\n ", num1, num1)
//定义变量的同时并赋值
var num2 int = 40
fmt.Printf("num2的类型是:%T,数值是: %d\n ", num2, num2)
//自行判断变量类型
var name = "zhangshang"
fmt.Printf("name的类型是:%T,数值是: %s\n ", name, name)
//简短定义,省略var
sum := 30
fmt.Printf("sum的类型是:%T,数值是: %d\n ", sum, sum)
//多个变量同时定义
var a, b, c = 1, 2, 3
fmt.Println(a, b, c)
//集合方式
var (
username = "张三"
age = 23
)
fmt.Printf("名字是:%s,年龄是: %d", username, age)
}
输出结果
num1的类型是:int,数值是: 30
num2的类型是:int,数值是: 40
name的类型是:string,数值是: zhangshang
sum的类型是:int,数值是: 30
1 2 3
名字是:张三,年龄是: 23
package main
import "fmt"
var a=1000 //全局变量
//b:=3 non-declaration statement outside function body 不能用简短定义
func main() {
var num int=100
fmt.Printf("变量num的数值是:%d,地址值是:%p\n",num,&num)
num=200
fmt.Printf("变量num的数值是:%d,地址值是:%p\n",num,&num)//重新赋值之后数值发生变化但地址值未发生变化
var name string
//name=11 cannot use 11 (type int) as type string in assignment
name="张三"
fmt.Println(name)
//num,name:=200,"李小龙" no new variables on left side of :=
num,name,sex:=200,"李小龙","男"
fmt.Println(num,name,sex)
fmt.Println(a)
fmt.Println("-----数据类型的默认值-----")
var q int //0
fmt.Println(q)
var w float64
fmt.Println(w)//0
var e byte
fmt.Println(e)//0
var r string
fmt.Println(r)//""
var t bool
fmt.Println(t)//false
//var sum =30 sum declared and not used
}
输出结果
变量num的数值是:100,地址值是:0xc00000a0e8
变量num的数值是:200,地址值是:0xc00000a0e8
张三
200 李小龙 男
1000
-----数据类型的默认值-----
0
0
0
false
常量
package main
import "fmt"
func main() {
/**
在程序运行时不能改变
*/
const NAME string = "123"
//NAME="234" cannot assign to NAME
fmt.Println(NAME)
const A, B, C = 1, 2, 3 //常量只定义不使用也可以
//集合定义常量
const (
D = 4
E
F = "ASD"
G
)
//常量定义可以不赋值,延续上一个常量的类型和值
fmt.Println(D, E, F, G) //4 4 ASD ASD
//const Z missing value in const declaration 常量单行声明时需要赋值
//常量的类型只能是数字型(整型,浮点,复数),布尔类型,字符串类型
}
输出结果:
123
4 4 ASD ASD