Chinaunix首页 | 论坛 | 博客
  • 博客访问: 216518
  • 博文数量: 46
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 482
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-18 14:14
个人简介

小菜鸟

文章分类

全部博文(46)

文章存档

2020年(2)

2017年(7)

2016年(36)

2014年(1)

我的朋友

分类: LINUX

2016-03-28 16:14:36

Go 语言教程笔记(二)

一 Go 语言常量

常量是指该程序可能无法在其执行期间改变的固定值。这些固定值也被称为文字。

常量可以是任何像一个整型常量,一个浮点常量,字符常量或字符串文字的基本数据类型。还

有枚举常量。常量是一样,只是它们的值不能自己定义后进行修改常规变量处理。

整形常量

一个整数文字也可以有一个后缀为U和L的组合,分别为无符号和长整型。后缀可以是大写或小

写,并且可以以任意顺序。可以是十进制,八进制,或十六进制常数。前缀指定基或基数:0x

或 0X 的十六进制,0 表示八进制,并没有十进制。

整数常量的一些例子:

212         /* Legal */

215u        /* Legal */

0xFeeL      /* Legal */

078         /* Illegal: 8 is not an octal digit */

032UU       /* Illegal: cannot repeat a suffix */

不同类型的整型常量的例子:

85         /* decimal */

0213       /* octal */

0x4b       /* hexadecimal */

30         /* int */

30u        /* unsigned int */

30l        /* long */

30ul       /* unsigned long */

浮点文本(常量)

浮点字面具有一个整数部分,一个小数点,一个小数部分,和一个指数部分。你可以表示十进

制形式或指数形式浮点文字。同时采用十进制形式表示,则必须包括小数点,指数,或两者并

用而指数形式表示,则必须包括整数部分,小数部分,或者两者兼而有之。有符号的指数,通

过e或E表示。

下面是浮点面值的一些例子:

3.14159       /* Legal */

314159E-5L    /* Legal */

510E          /* Illegal: incomplete exponent */

210f          /* Illegal: no decimal or exponent */

.e55          /* Illegal: missing integer or fraction */

字符串文字

字符串文字或常量用双引号“”。一个字符串包含类似于字符文字字符:普通字符,转义序列

和通用字符。可以使用字符串和分隔使用空格打破一个长行成多行。

"hello, dear"

"hello, 

dear"

"hello, " "d" "ear"

const 关键字

package main

import "fmt"

func main() {

   const LENGTH int = 10

   const WIDTH int = 5   

   var area int

   area = LENGTH * WIDTH

   fmt.Printf("value of area : %d", area)   

}

习惯大写定义常量是一个良好的编程习惯。

二 Go 语言运算符

Go语言有丰富的内置运算符和运算符:

算术运算符

关系运算符

逻辑运算符

位运算符

赋值运算符

其它运算符


算术运算符

运算符 描述 示例
+ 两个操作数相加 A + B = 30
- 第一个操作数减第二操作数 A - B = -10
* 两个操作数相乘 A * B = 200
/ 通过去分子除以分母 B / A = 2
% 模运算和整数除法后的余数 B % A = 0
++ 运算符递增整数值增加一 A++ = 11
-- 运算符递减整数值减一 A-- = 9

关系运算符

运算符 描述 示例
== 检查两个操作数的值是否相等,如果是的话那么条件为真。 (A == B) 不为 true.
!= 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 (A != B) 为true.
> 检查左边的操作数的值是否大于右操作数的值,如果是的话那么条件为真。 (A > B) 不为 true.
< 检查左边的操作数的值是否小于右操作数的值,如果是的话那么条件为真。 (A < B) 为 true.
>= 检查左边的操作数的值是否大于或等于右操作数的值,如果是的话那么条件为真。 (A >= B) 不为 true.
<= 检查左边的操作数的值是否小于或等于右操作数的值,如果是的话那么条件为真。 (A <= B) 为 true

逻辑运算符

&& 所谓逻辑与运算符。如果两个操作数都非零,则条件变为真。 (A && B) 为 false.
|| 所谓的逻辑或操作。如果任何两个操作数是非零,则条件变为真。 (A || B) 为 true.
! 所谓逻辑非运算符。使用反转操作数的逻辑状态。如果条件为真,那么逻辑非操后结果为假。 !(A && B) 为 true.

位运算符

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

假设,如果A =60;且b =13;现在以二进制格式它们如下:

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

C语言支持位运算符列在如下表。假设变量A=60和变量B=13,则

其它运算符

还有其他一些重要的运算符,包括sizeof和?:在Go语言中也支持。

Go语言运算符优先级

分类  运算符  关联 
后缀 () [] -> . ++ - -   从左到右
一元 + - ! ~ ++ - - (type)* & sizeof  从右到左
乘法 * / %  从左到右
相加   + -  从左到右 
移动 << >>  从左到右
关系 < <= > >=  从左到右
相等 == !=  从左到右
按位与 从左到右
按位异或 从左到右
按位或  从左到右
逻辑与  &&  从左到右
逻辑或  ||  从左到右
条件  ?:  从左到右
赋值 = += -= *= /= %=>>= <<= &= ^= |=  从右到左
逗号  从左到右


阅读(1516) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~