自动推导赋值
:=自动推导赋值
Go中 不同的数据类型不能进行计算
对于浮点型默认都是float64 精确到小数点后15位
单引号的 为字节类型 一位0~255的字符转换
双引号的 为字符串类型
多重赋值
多重赋值a,b:=1,2
格式输出
格式输出printf
“%3d”三位整数,不满足三位时头部补空格
“%-3d”三位整数,不满足三位时尾部补空格
“%03d”三位整数,不满足三位时头部补0
“%f”默认保留6位小数
“%.3f”保留3位小数进行四舍五入
“%c“ 表示一个字符,如果 a:=’c’ 进行”%d“操作,则返回ascii码
“%p”表示 一个数据变量的内存地址
%b十进制转二进制数字
%o转八进制
输入操作
Fmt.Scan(&a)程序阻塞等待输入,且赋值给内存地址,
若aint类型 则直接收数字部分,非数字部分则被忽略
Str则 空格回车被忽略。截断。
Fmt.scan(&a,&b)截断也可接受,
命名规则
字母或下划线开头,区分大小写
常量
Const关键字 常量在数据区,不能通过取地址访问 大写字母表示
Iota 枚举
Iota枚举 自动生成器,给常量使用。每次自动增加1
Const(
A = iota
b = iota
c = iota
)
Const(
A1=iota
B1
C1
)
Const(
A1=iota //0
B1,D1=iota,iota //1,1 同一行,数值一样
C1 //2
)
数据类型转换
使用相关函数float64(param)等
指针
Switch case
Varflag=1 //不能是浮点数
Switchflag{
Case 1:
Xxx
Default:
xxxxx
}
for i:=1;i<=10;i++ {
fmt.Println("ii")
}
for; ; {
//死循环
}
Int转string
func main04() {
//100-999各位数字的立方和
for i := 100; i <= 999; i++ {
var h, t, d int
rs := []rune(strconv.Itoa(i))
//fmt.Println(flag)
h, _ = strconv.Atoi(string(rs[0:1]))
t, _ = strconv.Atoi(string(rs[1:2]))
d, _ = strconv.Atoi(string(rs[2:3]))
result := h*h*h + t*t*t + d*d*d
if (result == i) {
fmt.Printf("这是一个水仙花数%d", i)
}
}
}
func main04() {
//100-999各位数字的立方和
for i := 100; i <= 999; i++ {
a:=i/100
b:=i/10%10
c:=i%10
result := a*a*a + b*b*b + c*c*c
if (result == i) {
fmt.Printf("这是一个水仙花数%d \n", i)
}
}
}
九九乘法口诀表
for i := 1; i <= 9; i++ {
for m := 1; m <= i; m++ {
fmt.Printf("%d*%d=%d \t",i,m,i*m)
}
fmt.Printf("\n")
}
len()//长度方法
不定参数类型方法
Funcfucname(args …int){
}
Rage 遍历
For_,data := range arr{
}
函数类型
匿名函数
Funcmain01(){
func(a int,b int){
}(a,b)
F:=func(){}
F()
}