变量
变量——容器
变量声明——go的变量有类型
var a=初始值 //按照初始值推测类型
var a 类型
两种声明数据类型的方法
1.带初始值
var a=0 //隐式类型声明,没有明说,但是编译器懂这个类型是什么
2.带类型
var a int //显式类型声明
3.初始值、类型
var a int=0 //显式类型声明
var a=0
var b=0
//可以批量操作
var (
a=0
b=0
)
var (
a int
b int
)
变量的代码示例如下
下面这样是错误的
变量名不能重复
程序中有变量的声明,但是没有使用,编译报错
隐式类型声明
var a=12//隐式类型声明,推导出a是int类型
编译器认为a是int类型,不能赋给它浮点数
下面这种写法语法是通不过的
编译器报错,说它期待着类型
类型的显示声明
因为int类型在没有初始化的情况下,默认是0
下面这种写法也是错误的
数据的输入
fmt.Printf(打印)
fmt.Scanf(用户输入,但是要扫描数据找到你想要的东西)
输入Scanf
fmt.Scanf("%d,%d", &a, &b)//用户输入的时候: a,b
&——取址运算
我们增加一行打印
如果用户的输入的方式是下面这样的:
为什么55没有进来,因为和Scanf的格式不一样了,Scanf严格按照用户的要求进行输入,一旦看到不符合的东西,比如说上图中的逗号,后续它就不管了,就导致a被赋值为12,b没有管了,
那我们怎么知道用户输入的时候到底是不是输入了2个数字,中间用空格隔开?
Scanf是有返回值的。
var n,_=fmt.Scanf("%d,%d", &a, &b)
n代表用户实际输入了几个元素,或者是编译器实际找到了几个有效的元素
因为Scanf的返回值是2个,所以要写成n,_ (,_表示放弃这个数据)
如果n不是2,则代表用户输入操作是错误的。
if判断语句
如果 钱<10 {
吃包子
}或者{
吃盖饭
}
判断
if 条件 {
执行1...
}else{
执行2...
}
if 钱<10 {
吃包子
}else{
吃盖饭
}