ITPub博客

首页 > > > Go语言从入门到精通-01 | 数据类型与表达式

Go语言从入门到精通-01 | 数据类型与表达式

作者:dapan 时间:2020-07-08 11:27:26 0 删除 编辑

上一篇文章我们给了一个入门程序,接下来我们介绍在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语言中定义了在同时出现多个运算符是的等级。等级越高,则表示该运算符会优先执行。优先顺序依次为:

  1. ^ !
  2. * / % << >> & &^
  3. + - | ^
  4. == != < <= >= >
  5. <-
  6. &&
  7. ||

同一级别的从左向右执行。另外,括弧优先级是最高的,也就是括弧中的内容会优先执行,下面是例程:

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/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 数据类型长度
请登录后发表评论 登录
全部评论

注册时间:2020-08-07

  • 博文量
    4504
  • 访问量
    87347