golang基础

跨平台编译

export CGO_ENABLED=0  // 禁用CGO
export GOOS=linux  // 目标平台是linux
export GOARCH=amd64  // 目标处理器架构是amd64

基本类型(Basic types):

bool

string

int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr

byte // uint8 的别名

rune // int32 的别名 // 代表一个Unicode码

float32 float64

complex64 complex128

运算符:

按照优先级递减的顺序排列:
*      /      %      <<       >>     &       &^
+      -      |      ^
==     !=     <      <=       >      >=
&&
||
bit位操作运算符,前面4个操作运算符并不区分是有符号还是无符号数:
&      位运算 AND
|      位运算 OR
^      位运算 XOR       // 二元运算符时是按位异或(XOR),当用作一元运算符时表示按位取反
&^     位清空 (AND NOT) // 按位置零(AND NOT):如果对应y中bit位为1的话, 表达式z = x &^ y结果z的对应的bit位为0,否则z对应的bit位等于x相应的bit位的值
<<     左移  // 一个x<<n左移运算等价于乘以2^n
>>     右移  // 一个x>>n右移运算等价于除以2^n

主要格式化:

%d          十进制整数
%x, %o, %b  十六进制,八进制,二进制整数。
%f, %g, %e  浮点数: 3.141593 3.141592653589793 3.141593e+00
%t          布尔:true或false
%c          字符(rune) (Unicode码点)
%s          字符串
%q          带双引号的字符串"abc"或带单引号的字符'c'
%v          变量的自然形式(natural format)
%T          变量的类型
%%          字面上的百分号标志(无操作数)
%p          地址

输出:

├── io.Writer                # 标准流输出
│   ├── os.Stdout            # 标准输出
│   ├── ioutil.Discard       # 丢弃的流
│   └── http.ResponseWriter  # http响应

基本类型:

// from type.go
const (
	Invalid Kind = iota
	Bool
	Int
	Int8
	Int16
	Int32
	Int64
	Uint
	Uint8
	Uint16
	Uint32
	Uint64
	Uintptr
	Float32
	Float64
	Complex64
	Complex128
	Array
	Chan
	Func
	Interface
	Map
	Ptr
	Slice
	String
	Struct
	UnsafePointer
)

基本数据类型大小(单位:字节(byte))

bool:  1
int:  8
int8:  1
int16:  2
int32:  4
int64:  8
uint:  8
uint8:  1
uint16:  2
uint32:  4
uint64:  8
float32:  4
float64:  8
complex64:  8
complex128:  16
string:  16
pointer:  8
uintptr:  8

net/http流程

net_http

go object_relation:

object_relation

调用脚本

github.com/codegangsta/gin
github.com/pilu/fresh


yaegi
tengo
gopher
otto


https://github.com/yuin/gopher-lua

https://github.com/traefik/yaegi

https://github.com/robertkrimen/otto
支付宝打赏 微信打赏

来杯咖啡~

文章导航