Entries Category “Go”

Mon 16 January 2017

Golang接口型函数

package main import ( "fmt" ) type Handler interface { Do(k, v interface{}) } type HandlerFunc func(k, v interface{}) func (f HandlerFunc) Do(k, v interface{}) { f(k, v) } func Each(m map[interface{}]interface{}, h Handler) { for k, v := range m { h.Do(k, v) } } func EachFunc(m map[interface{}]interface ... read more
Mon 20 June 2016

go网络编程积累(一)

//server.go package main import ( "fmt" "net" "os" "io" ) func main() { ln, err := net.Listen("tcp", ":8888") if err != nil { fmt.Println("Can't listen") os.Exit(2) } for { conn, err := ln.Accept() if err != nil { fmt.Println("Can't accept a conn") continue } go handleConn(conn) } } func handleConn(conn ... read more
Tue 10 May 2016

Golang编程练习

完整代码 戳这里 1. 验证给定字符串是否为合法身份证号码 算法:前17位纯数字分别乘以相应的因子,然后求和后除以11取余数。使用该余数取得校验字节数组中相位位置的字节与身份证最后一位字节做比较。如果相等即为合法身份证! package main import "fmt" import "strconv" var ( Factories [17]int = [17]int{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2} ValidateBits []byte = []byte("10X98765432") ) func IsValidIDCode(id string) bool { idBytes := []byte(id ... read more
Sun 27 March 2016

Golang中三种import方式

1. 点方式 有时候会看到如下的方式导入包 import( . "fmt" ) 这个点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,也就是前面你调用的fmt.Println("hello world") 可以省略的写成Println("hello world") 2. 别名方式 别名操作顾名思义可以把包命名成另一个用起来容易记忆的名字。 import( f "fmt" ) 别名操作调用包函数时前缀变成了重命名的前缀,即f.Println("hello world") 3. _方式 _操作其实只是引入该包。当导入一个包时,它所有的init()函数就会被执行,但有些时候并非真的需要使用这些包,仅仅是希望它的init()函数被执行而已。这个时候就可以使用_操作引用该包了。即使用_操作引用包是无法通过包名来调用包中的导出函数,而是只是为了简单的调用其init函数()。 比如 import (_ "github.com/mattn/go-sqlite3")只是为了调用该包中的init函数来注册该数据库驱动而已,并需要该包中的其他内容。 read more
 

Tags