在百度上做网站推广怎么弄,广州市网站网页制作公司,wordpress解决速度,电子商务网站的建设目标是什么引言
数字在编程中很常见。它们用于表示诸如:屏幕尺寸、地理位置、金钱和点数、视频中经过的时间、游戏角色的位置、分配数字代码的颜色等等。
在编程中有效地执行数学运算是一项需要开发的重要技能#xff0c;因为你经常会用到数字。虽然对数学的深入理解肯定可以帮助你成为…引言
数字在编程中很常见。它们用于表示诸如:屏幕尺寸、地理位置、金钱和点数、视频中经过的时间、游戏角色的位置、分配数字代码的颜色等等。
在编程中有效地执行数学运算是一项需要开发的重要技能因为你经常会用到数字。虽然对数学的深入理解肯定可以帮助你成为更好的程序员但这不是先决条件。如果你没有数学背景试着把数学看作是一种工具来完成你想要达到的目标是一种提高你逻辑思维的方法。
我们将使用Go中最常用的两种数字[数据类型]整数和浮点数:
[Integers]是整数,可以是积极的,消极的,或0(…,-1, 0, 1,…)。[Floats]是包含小数点的实数例如9.0或-2.25…
本教程将回顾Go中可用于数字数据类型的运算符。
运算符
运算符是一个表示操作的符号或函数。例如在数学中加号或’ 是表示加法的运算符。
在Go中我们将看到一些从数学中引入的熟悉的操作符。不过我们将使用的其他操作符是计算机编程特有的。
下面是Go中数学相关运算符的快速参考表。我们将在本教程中介绍以下所有操作。
运算符返回什么x yx与y的和x - yx和y的差值-x改变x的符号xx的恒等式x * yx和y的乘积x / yx和y的商x % yx / y的余数
我们还将介绍复合赋值运算符包括和*它们将算术运算符与运算符结合在一起。
加法和减法
在Go中加法和减法运算符的表现与数学中的一样。事实上您可以将Go编程语言用作计算器。
让我们看一些例子从整数开始:
fmt.Println(1 5)Output6除了直接将整数传递给fmt.Println语句之外我们可以使用如下语法初始化变量以表示整数值:
a : 88
b : 103fmt.Println(a b)Output191因为整数既可以是正数也可以是负数(0也是)所以可以将负数和正数相加:
c : -36
d : 25fmt.Println(c d)Output-11浮点数的加法操作类似:
e : 5.5
f : 2.5fmt.Println(e f)Output8因为我们将两个浮点数相加所以Go返回了一个带小数点的浮点值。然而由于在本例中小数点是零fmt.Println删除了小数格式。为了正确格式化输出我们可以使用fmt.Printf和动词%.2f它将格式化为两位小数如下例所示:
fmt.Printf(%.2f, e f)Output8.00减法的语法与加法相同只是要把运算符从加号()改为减号(-):
g : 75.67
h : 32.0fmt.Println(g - h)Output43.67在Go中我们只能在相同的数据类型上使用操作符。我们不能将int和float64相加
i : 7
j : 7.0
fmt.Println(i j)Outputi j (mismatched types int and float64)试图在不相同的数据类型上使用运算符将导致编译器错误。
一元数学表达式
一元数学表达式只包含一个成分或元素。在Go中我们可以使用加号和减号作为单个元素与值配对:返回值的单位符号()或更改值的符号(-)。
虽然加号不常用但它表示值的身份。我们可以使用加号来表示正数:
i : 3.3
fmt.Println(i)Output3.3当我们用加号表示一个负数时它也会返回该值的标识符在这个例子中它会返回一个负数:
j : -19
fmt.Println(j)Output-19对于负数加号返回相同的负数。
然而减号会改变值的正负号。因此当我们传入一个正值时我们会发现值之前的减号将返回负值:
k : 3.3
fmt.Println(-k)Output-3.3或者当使用减号操作符处理负数时将返回一个正数:
j : -19
fmt.Println(-j)Output19由加号和减号表示的一元算术运算将返回值的恒等符号(如i)或相反的符号(如-i)。
乘法和除法
就像加法和减法一样乘法和除法看起来很像数学中的运算。我们将在Go中用于乘法的符号是*用于除法的符号是/。
下面是用两个浮点数在Go中做乘法的例子:
k : 100.2
l : 10.2fmt.Println(k * l)Output1022.04在Go中根据我们除法的数值类型除法具有不同的特征。
如果我们要除以整数Go的/运算符会执行整除操作对于商x返回的是小于或等于x的最大整数。
如果你运行以下除以80 / 6的例子你将得到13作为输出数据类型将是int:
package mainimport (fmt
)func main() {m : 80n : 6fmt.Println(m / n)
}Output13如果期望的输出是浮点数则必须在除法之前显式转换值。
你可以通过在你的值周围包装你想要的浮点类型float32()或float64()来实现:
package mainimport (fmt
)func main() {s : 80t : 6r : float64(s) / float64(t)fmt.Println(r)
}Output13.333333333333334模
%操作符是模它返回除法后的余数而不是商。这对于查找是同一个数的倍数的数很有用。
来看一个求模的例子:
o : 85
p : 15fmt.Println(o % p)Output10具体来说85除以15返回的是5的商余数10。我们的程序在这里返回值10因为求模运算符返回除法表达式的余数。
要对float64数据类型进行模运算你将使用math包中的Mod函数:
package mainimport (fmtmath
)func main() {q : 36.0r : 8.0s : math.Mod(q, r)fmt.Println(s)
}Output4运算符优先级
在Go中就像在数学中一样我们需要记住运算符将按优先级顺序进行计算而不是从左到右或从右到左。
看看下面的数学表达式:
u 10 10 * 5我们可以从左到右读取它但乘法将首先执行因此如果我们打印u我们将收到以下值:
Output60这是因为10 * 5的计算结果是50然后我们加上10来返回60作为最终结果。
如果我们想将值10加到10然后乘以5我们在Go中使用括号就像我们在数学中使用的那样:
u : (10 10) * 5
fmt.Println(u)Output100记住运算顺序的一种方法是使用缩写PEMDAS:
优先级标志代表1P括号2E指数3M乘法4D除法5A加法6S减法
你可能熟悉另一个表示操作顺序的缩写例如BEDMAS或BODMAS。无论哪种首字母缩写最适合您在Go中执行数学操作时请尽量记住它以便返回您期望的结果。
赋值操作符
最常见的赋值运算符已经用过:等号。赋值运算符将右边的值赋给左边的变量。例如v 23将整数23的值赋给变量v。
编程时通常使用复合赋值操作符对变量的值进行操作然后将得到的新值赋给该变量。这些复合操作符结合了算术操作符和操作符。因此对于加法运算我们将和结合起来得到复合运算符。让我们看看它是什么样子:
w : 5
w 1
fmt.Println(w)Output6首先我们将变量w的值设置为5然后使用复合赋值操作符将右值与左值相加然后将结果赋值给w。
复合赋值运算符经常用于for循环的情况当你想多次重复一个过程时你会使用它:
package mainimport fmtfunc main() {values : []int{0, 1, 2, 3, 4, 5, 6}for _, x : range values {w : xw * 2fmt.Println(w)}}Output0
2
4
6
8
10
12通过使用for循环来迭代名为values的切片你能够自动化*操作符的处理该操作符将变量w乘以数字2然后将结果赋值给变量w。
对于本教程中讨论的每个算术运算符Go都有一个复合赋值运算符。
添加后再赋值:
y 1减去后再赋值:
y - 1相乘再赋值:
y * 2相除再赋值:
y / 3要返回余数然后再赋值:
y % 3当需要递增或递减操作时或者需要自动化程序中的某些过程时复合赋值操作符可能很有用。
总结
本教程介绍了许多用于整数和浮点数数据类型的运算符。