运算符

算数运算符

就是加减乘除之类的;不写了;

区别:在Java里面有++i和–i但是在go语言里面就只有i++和i–,另外没有i=i++这个写法,在写Java的时候也没有这个习惯

关系运算符

关系运算符也是一样的;不写了

逻辑运算符

逻辑运算符也是一样的

赋值运算符

*+=,-=,=,/=,%=,<<=,>>=,&=,^=,|=**

注意的是:^=:二进制位相同为0,不同为1

先运算在赋值

1
2
3
4
5
6
7
8
//不使用中间变量交换两个数的值
a:=10
b:=20
a=a+b//先求他们之间的和
b=a-b//这个时候已经是a b=a+b-b
a=a-b//b=a,a=a+b-a
fmt.Println(a)
fmt.Println(b)

明确说明,go语言里面没有三元运算符,如果要实现三目运算符的功能可以使用中间变量替换

举例:

a=b>c?b:c

1
2
3
4
5
6
7
8
var a int;
b:=10
c:=20
if(b>c){
a=c
}else{
a=b
}

键盘输入语句

  1. 使用fmt.Scanln()

    1
    2
    3
    4
    fmt.Println("请输入你的名字")
    var name string;
    fmt.Scanln(&name)
    fmt.Println(name)

    这个方法只可以输入一个变量的值;输入接收的变量只能是一个指针,返回值有两个,错误和获得的条目数

    1
    2
    3
    4
    5
    6
    7
    fmt.Println("请输入你的名字")
    var name string
    var age string
    a,_:=fmt.Scan(&name,&age)
    fmt.Println("修改的条数是",a)
    fmt.Println("名字是",name)
    fmt.Println("年龄是",age)

    在输入的时候,使用空格隔开,获得多个参数的值

  2. 使用fmt.Scanf()

1
2
3
4
5
6
7
fmt.Println("请输入你的名字")
var name string
var age string
a,_:=fmt.Scanf("%s %s",&name,&age)
fmt.Println("修改的条数是",a)
fmt.Println(name)
fmt.Println(age)

使用的时候,两个参数的连接使用空格,不然读不出来(目前看来)