艺多不压身,学习一下最近蛮火的Go语言,整理一下笔记。相关Code和笔记也放到了Git上,传送门。
1.从Hello world开始
2.测试程序,变量,常量
常量定义方面
// 1.快速设置连续值 const ( Monday = iota + 1 Tuseday Wednesday ... Sunday ) // 2. 表状态的bite位也可以这么玩 Const ( Open = 1 << iota Close Pending )
3.基本数据类型
bool
string
int int8 int16 int32 int64
uint unit8 unit16 unit32 unit64 uintptr
byte // alias for unit8
rune // alias for int32, represents a Unicode code point !!!这个类型以后会详详细介绍,暂且放一放
float32 float64
complex64 complex128
类型的预定义值
例如:
math.MaxInt64
math.MaxFloat64
math.MaxUnit32
指针类型 于其他主要变成语言的差异
1. 不支持指针运算
2. string是值类型,其默认的初始化值为空字符串,而不是nil
4.运算符
算术运算符
比较运算符
常用运算符与别的语言没什么差异,但什么对象可以比较稍有差异,日后补充
例:用==比较数组
相同维数且含有相同个数元素的数组才可比较
每个元素都相等才相等
逻辑运算符
与别的语言没由什么差异
位运算符
& | ^ << >>没什么差异
与其他语言的差异 &^ 按位置零 (按位清零) 运算符
1 &^ 0 -- 1
1 &^ 1 -- 0
0 &^ 1 -- 0
0 &^ 0 -- 0
该运算符这样计算, 只要操作符右边的运算数上的位置为1,无论左边对应位置上的运算数是多少都清零。
右边操作符上的操作数为0时则左边原来是什么就显示什么。
注意,使用Go语言就要使用Go的特点,写出真正的Go程序而不是将其他语言翻译成Go.
5.条件和循环
循环
Go语言仅支持循环关键字for
例 for j:= 7; j <= 9; j++ (不需要括号括起来)
while条件循环 while (n < 5) Go版本 n := 0 for n < 5 { n++ fmt.Println(n) } 无限循环 while(true) Go版本 n := 0 for { ... }
if条件
例: if condition { ... } else { ... } if condition - 1 { ... } else if condition - 2 { ... } else { ... }
区别:
if vardeclaration; condition { // code to be executed if condition is true }
switch条件与其他语言的差异
写法举例: 1. switch os := runtime.GOOS; os { case "darwin": fmt.Println("OS X.") //break case "linux": fmt.Println("Linux.") default: // freebsd, openbsd, // plan9, windows... fmt.Printf("%s.", os) } 2. switch { case 0 <= Num && Num <= 3: fmt.Prinft("0-3") case 4 <= Num && Num <= 6: fmt.Prinft("4-6") case 7 <= Num && Num <= 9: fmt.Prinft("7-9") }
原文:https://www.cnblogs.com/dogtwo0214/p/13125265.html