Golang语法初读-4
更新日期:
继续看书哈
Md5 & Sha
Code解释大法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package main import ( "fmt" "crypto/sha1" "crypto/md5" ) func main () { var TestString string = string("admin") Md5Inst := md5.New() Md5Inst.Write([]byte (TestString)) Result := Md5Inst.Sum([]byte("")) fmt.Printf("%x\n",Result) Sha1Inst := sha1.New() Sha1Inst.Write([]byte (TestString)) Result = Sha1Inst.Sum([]byte("")) fmt.Printf("%x\n",Result) } |
单元测试
和JUnit差不多
发布
太差了!!!
打包源代码进行分发,使用者自行编译!!!
现在严重鄙视各种自行编译!!!(突然想起了python,嘿嘿)
反射
反射是高配置,灵活性的体现,但确实是把双刃剑。 高配置,灵活性 === 繁琐,可读性,可维护性 差
Go 中的反射,主要是两个概念Type和Value
用书中的例子,记录下
//传值
1 2 3 | var x float64 = 3.4 v := reflect.ValueOf(x) v.Set(4.1) |
//传址
1 2 3 4 5 6 7 8 9 10 11 12 | var x float64 = 3.4 p := reflect.ValueOf(&x) fmt.Println("Type of P : ", p.Type()) fmt.Println("settability of p : ", p.CanSet()) v:= p.Elem() fmt.Println("settability of v : ", v.CanSet()) v.SetFloat(7.1) fmt.Println("v : ", v.Interface()) fmt.Println("x : ", x) |
1 2 3 4 5 | Type of P : *float64 settability of p : false settability of v : true v : 7.1 x : 7.1 |
语言交互性
Cgo 没啥兴趣
Go标准库
- 输入输出 bufio, fmt, io, log, flag(处理命令行参数)
- 文本处理 encoding, bytes, strings, strconv, text, mime, unicode, regexp, index, path(处理路径字符串)
- 网络 net, http, expvar
- 系统 os, syscall, sync, time, unsafe
- 数据结构和算法 math, sort, container, crypto, hash, archive, compress, image(图像编码算法)
- RunTime runtime, reflect, go
初读感受
没啥东东,interface{}? goroutine? defer糖?
还需要多发展发展,不知道以后在Android 上怎么样,给条活路哈
打包,发布啥的,这都什么年代啦... MakeFile?
现在就觉得做个MessageQueue 啥的还行,和Erlang拼杀?
Done