首页 > > > Go语言从入门到精通-01 | 数据类型与表达式
上一篇文章我们给了一个入门程序,接下来我们介绍在Go语言中的数据类型和表达式相关的内容。由于本文是简介性的文章,因此并不会事无巨细的介绍所有内容,只是能够让读者达到理解基本概念,并能够使用的程度,更为深入的学习还需要其它材料。

同任何其它编程语言一样,Go语言支持多种类型的数据。从大的分类上面Go语言支持布尔类型、数字类型、字符串和派生类型等几种。
变量是存储数据的存储空间的别名,通过变量开发人员可以方便的访问内存空间,也就是访问其中存储的数据。Go语言的变量是类型相关的,也就是定义变量时需要指定变量的类型,不同类型的变量占用的内存空间是不同的。
下面我们通过一个具体的示例说明数据类型和变量。

当然,这里介绍了有限的几种数据类型,但在后面的使用中基本上够用了。
程序大部分都是进行运算的,了解了变量的这些类型,我们看一下Go语言如何进行计算。Go语言的计算包括常规的加减乘除、关系运算、位运算和逻辑运算。这些运算与其它语言的运算并没有任何本质的差异,运算符也基本一致。
运算符,所谓运算符就是进行运算的符号,比如+、-、*和/等,分别表示加减乘除。而>则用于计算两个值的大小关系。
表达式是运算符和数字或者变量的组合,用于进行一系列的计算,最后会计算出一个结果。表达式中各个运算符之间有优先级,基本遵循数学运算的规则。
package main
import "fmt"
func main() {
var int_name_1, int_name_2, int_name_3 int32 = 1, 2, 3
var int_name_4 int32 =
/* Go语言支持常见的算术云算法,包括加减乘除和取模等 */
int_name_4 = int_name_1 + int_name_2
int_name_4 = int_name_1 - int_name_2
int_name_4 = int_name_1 * int_name_2
int_name_4 = int_name_1 / int_name_2
int_name_4 = int_name_1 % int_name_2 /*取模*/
int_name_3 ++ //自增
int_name_3 --
fmt.Println(int_name_1, int_name_2, int_name_3, int_name_4)
/* 关系运算,也就是判断2个变量的大小关系,如果满足条件则返回真(true),否则返回假(false) */
var a bool
/* 举个简单的例子,计算1是否大于2,如果大于则返回true,否则返回false。结果是显然的 */
a = 1 > 2
fmt.Println(a)
a = 1 < 2
a = 1 >= 2
a = 1 <= 2
a = 1 == 2 //相等判断
a = 1 != 2 //不等判断
/* 逻辑运算,也称为布尔运算,判断一个或者多个值或者变量的逻辑关系 */
var b = bool
b = 1 && 1 //与运算
b = 1 || 1 //或运算
b = !1 //非运算
fmt.Println(b)
/* 除了上述运算外,还有位运算,分别用& | ^表示按位与、或和异或运算。本文不在赘述。 */
}
我们在一个表达式中不可能只用一个云算法,同时运用多个运算符的情况是经常存在的。因此Go语言中定义了在同时出现多个运算符是的等级。等级越高,则表示该运算符会优先执行。优先顺序依次为:
同一级别的从左向右执行。另外,括弧优先级是最高的,也就是括弧中的内容会优先执行,下面是例程:
package main
import "fmt"
func main() {
var a int = 20
var b int = 10
var c int = 15
var d int = 5
var e int;
e = (a + b) * c / d; // ( 30 * 15 ) / 5
fmt.Printf("(a + b) * c / d 的值为 : %d", e );
e = ((a + b) * c) / d; // (30 * 15 ) / 5
fmt.Printf("((a + b) * c) / d 的值为 : %d" , e );
e = (a + b) * (c / d); // (30) * (15/5)
fmt.Printf("(a + b) * (c / d) 的值为 : %d", e );
e = a + (b * c) / d; // 20 + (150/5)
fmt.Printf("a + (b * c) / d 的值为 : %d" , e );
}好了,今天先到这,学完本文基本上清楚了在程序设计中如何进行运算。后面我们再介绍函数的概念。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/758/viewspace-3125011/ ,如需转载,请注明出处,否则将追究法律责任。