package main
import "fmt"
func main() {
/*
常量:
1.概念:同变量类似,程序执行过程中数值不能改变
2.语法:
显式类型定义
隐式类型定义
3.常数:
固定的数值:100,"abc"
*/
fmt.Println(100)
fmt.Println("hello")
//1.定义常量
const PATH string = "http:www.baidu.com"
const PI = 3.14
fmt.Println(PATH)
//fmt.Println(PI)
//2.尝试修改常量的数值
//PATH = "http://www.sina.com" //cannot assign to PATH
//3.定义一组常量
const C1, C2, C3 = 100, 3.14, "haha"
const (
MALE = 0
FEMALE = 1
UNKNOW = 3
)
//4.一组常量中,如果某个常量没有初始值,默认和上一行一致
const (
a int = 100
b
c string = "ruby"
d
e
)
fmt.Printf("%T,%d\n", a, a)
fmt.Printf("%T,%d\n", b, b)
fmt.Printf("%T,%s\n", c, c)
fmt.Printf("%T,%s\n", d, d)
fmt.Printf("%T,%s\n", e, e)
//5. 枚举类型:使用常量组作为枚举类型。一组相关数值的数据
const (
SPRING = 0
SUMMER = 1
AUTUMN = 2
WINTER = 3
)
}
Golang 数据类型
/* Go语言的数据类型: 1.基本数据类型: 布尔类型:bool 取值:true,false 数值类型: 整数:int 有符号:最高位表示符号位,0正数,1负数,其余位表示数值 int8:(-128 到 127) int16:(-32768 到 32767) int32:(-2147483648 到 2147483647) int64:(-9223372036854775808 到 9223372036854775807) 无符号:所有的位表示数值 uint8: (0 到 255) uint16:(0 到 65535) uint32:(0 到 4294967295) uint64: (0 到 18446744073709551615) int, uint byte:uint8 rune:int32 浮点:生活中的小数 float32,float64 复数:complex, 字符串:string 2.复合数据类型 array,slice,map,function,pointer,struct,interface,channel。。。 */ //1.布尔类型
常量自增方法iota
func main() {
/*
iota:特殊的常量,可以被编译器自动修改的常量
每当定义一个const,iota的初始值为0
每当定义一个常量,就会自动累加1
直到下一个const出现,清零
*/
const (
a = iota // 0
b = iota // 1
c = iota //2
)
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
const (
d = iota // 0
e // 1
)
fmt.Println(d)
fmt.Println(e)
//枚举中
const (
MALE = iota // 0
FEMALE // 1
UNKNOW // 2
)
fmt.Println(MALE, FEMALE, UNKNOW)
}
字符串基础
/* 字符串: 1.概念:多个byte的集合,理解为一个字符序列 2.语法:使用双引号 "abc","hello","A" 也可以使用`` 3.编码问题 计算机本质只识别0和1 A:65,B:66,C:67... a:97,b:98... ASCII(美国标准信息交换码) 中国的编码表:gbk,兼容ASCII 中 家 Unicode编码表:号称统一了全世界 UTF-8,UTF-16,UTF-32... 4.转义字符:\ A:有一些字符,有特殊的作用,可以转义为普通的字符 \',\' B:有一些字符,就是一个普通的字符,转义后有特殊的作用 \n,换行 \t,制表符 */
//1.定义字符串
var s1 string
s1 = "王二狗"
fmt.Printf("%T,%s\n",s1,s1)
s2 := `Hello World`
fmt.Printf("%T,%s\n",s2,s2)
//2.区别:'A',"A"
v1 := 'A'
v2 := "A"
fmt.Printf("%T,%d\n",v1,v1) //int32
fmt.Printf("%T,%s\n",v2,v2)
v3 := '中'
fmt.Printf("%T,%d,%c,%q\n",v3,v3,v3,v3)
//3.转义字符
fmt.Println("\"HelloWorld\"")
fmt.Println("Hello\nWor\tld")
fmt.Println(`He"lloWor"ld`)
fmt.Println("Hello`Wor`ld")
Golang变量名定义细节
/* 注意点: 1.变量必须先定义才能使用 2.变量的类型和赋值必须一致 3.同一个作用域内,变量名不能冲突 4.简短定义方式,左边的变量至少有一个是新的 5.简短定义方式,不能定义全局变量 6.变量的零值,就是默认值 整型:默认值是0 浮点类型:默认是0 字符串:默认值"" */