go学习part3

本文介绍了Go语言中的基本操作,包括加减乘除、取余、自增自减、赋值运算符、关系运算符、位运算以及获取终端输入的方法,如`Scanln`和`scanf`的用法和优先级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章学习的是符号意义和操作

1.  + - * 加减乘号

以加号为例

package main

import "fmt"

func main() {
	// + 加号
	//  1正数,2相加,3字符串拼接
	var n1 int = +10
	fmt.Println(n1)
	var n2 int = 4 + 7
	fmt.Println(n2)

	var s1 string = "abc" + "def"
	fmt.Println(s1)

}

2.除号  /

类似cpp,双整形除法是整除,含有浮点数的除法是小数除法。

package main

import "fmt"

func main() {

	//  / 除号:和cpp一样,int整除,有浮点就是除法
	fmt.Println(10/3)
	fmt.Println(10.0/3)
	fmt.Println(10/3.0)
}

3.取余=取模  %  

a%b就是,a 整除b之后的余数。等价于 a%b =  a - a/b*b

package main

import "fmt"

func main() {
	//  %取余操作 ,且操作数都为整数 等价于 a%b =  a - a/b*b
	fmt.Println(10 % 3)
	fmt.Println(-10 % 3)
	fmt.Println(10 % -3)
	fmt.Println(-10 % -3)
}

4. 自增自减 ++  --

go的自增自减为了防止混淆只能单独一行表示 + 1 和 -1 操作,且符号只能放在后面a++。不能像java和cpp里一样,分运算和使用的先后。

5.当前代码总览

package main

import "fmt"

func main() {
	// + 加号
	//  1正数,2相加,3字符串拼接
	var n1 int = +10
	fmt.Println(n1)
	var n2 int = 4 + 7
	fmt.Println(n2)

	var s1 string = "abc" + "def"
	fmt.Println(s1)

	//  / 除号:和cpp一样,int整除,有浮点就是除法
	fmt.Println(10 / 3)
	fmt.Println(10.0 / 3)
	fmt.Println(10 / 3.0)

	//  %取余操作 ,且操作数都为整数 等价于 a%b =  a - a/b*b
	fmt.Println(10 % 3)   // 3 * 3 + 1
	fmt.Println(-10 % 3)  // 3 * -3  +  -1
	fmt.Println(10 % -3)  // -3 * -3 + 1
	fmt.Println(-10 % -3) // 3 * -3  +  -1

	//++自增 ,--自减
	// 和cpp与java不同,go的 ++ 和 -- 只是单纯加1,且只能放在后面。不能参与运算,只能单独使用
	var a int = 10
	a++
	fmt.Println(a)
	//  ++a  错误
	//  a = (a++)  + 1 错误,只能单独用

}

6.赋值运算符

=, +=,-=,*=,/=,%=

和cpp一样

7.关系运算符

 和cpp一样

8.位运算符

&位与, |位或 ,^异或

9.其他用法

&取地址   *地址取值

package main

import "fmt"

//位运算符&位与, |位或 ,^异或

func main() {
	var age int = 18
	fmt.Println("age对应的地址是",&age)

	var ptr =  &age
	fmt.Println("ptr对应的地址是",ptr, ",指向的值是",*ptr)

}

10.运算符优先级

按表格从低到高

11.获取终端输入

在api的fmt包中有一些提供输入的函数

常用

1.scanln

到换行停止读取

类似于c的scanf(&a),参数是一个变量地址。

输入数据类型要匹配,底层会自动进行类型判定。输入错误的类型,不会报错,但是输入会出现偏差。

package main

import "fmt"

//地址符号

func main() {
	var age int = 18
	fmt.Println("输入age")
	//通过往地址上写入东西来改变变量值
	fmt.Scanln(&age)
	fmt.Println("age=",age)

}

 2.scanf

按某种格式要求,按空格分隔读取内容

 格式控制符

 

package main

import "fmt"

func main() {
	/*var age int = 18
	fmt.Println("输入age")
	//通过往地址上写入东西来改变变量值
	fmt.Scanln(&age)
	fmt.Println("age=",age)*/

	var name string
	var vip bool
	fmt.Scanf("%s %t", &name, &vip)
	fmt.Println("name=", name, "vip=", vip)

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值