golang中如何获取文件的扩展名? 在go的path包里,有func Ext(path string) string方法,这个方法可以获取文件的扩展名,他的返回值是带点.的,比如文件名称是test.txt, 使用这个函…
标签:go
Golang Read File line by line
学习什么语言都得从读文件开始,好像记得一个大神说过计算机编程就是”打开文件,操作,关闭文件”。初学Golang就记一下go语言的文件操作 Read File func main(){ rw,err…
Golang 特殊类型
Go语言的类型很多,简单的类型(int,string,float等)这里不再赘述。 下面讲一些开发中可能用到特殊类型 struct 类型 package main type User struct { Id int Na…
golang context
package main import ( "context" "fmt" "net/http" _ "net/http/pprof" "time" ) func main() { go http.ListenAndSe…
go语言的一些吐槽
struct的方法,如果receiver非指针,则调用这个方法无法改变对象状态,因为传递给方法的对象是原对象的一个拷贝,所有的改变都被作用在这个拷贝上而非原对象上. type st struct{ val uint32 …
Golang 1.9的主要更新
因网上这个资料难查,因此转载一份,原文请点击 Go1.9的主要更新 golang每半年更新一次版本,上次最新的版本是Go1.8,而Go1.9将在今年8月释出。Go1.9中语法的更改只有一个,那就是增加了类型别名,大部分更…
[golang] json序列化时自动将id加密
对于有规则的数据索引,比如用户ID,商品ID,订单编号,很容易第三方直接遍历抓取资源。采用liamylian/json-hashids进行加密,可以有效避免这类情况发生。但因为是对等加密,需注意该加密算法并不安全,使用时…
md5与crc32性能对比
感觉MD5算法复杂度比crc32高很多,具体高多少呢?测试一下 // main.go package main import ( "crypto/md5" "fmt" "hash/crc32" ) func main()…
Go Protobuf 资源的可读化
工作上有大量协议采用 Google Protocol Buffer,关于 Protobuf 的简单介绍可以看 IBM 的《Google Protocol Buffer 的使用和原理》这篇介绍。简单来说,Protobuf …
【go并发编程】
GO 并发编程 协程(进程 线程) 进程是“程序执行的一个实例” ,担当分配系统资源的实体。进程创建必须分配一个完整的独立地址空间。进程切换只发生在内核态。 线程:线程是进程的一个执行流,独立执行它自己的程序代码。 协程…
空接口(interface {})类型判断
空接口可以存储任意类型的数据,当需要判断到底是何种类型时,可以使用以下方法。 1 直接断言 比如我们收到一个类型为interface{}的变量unknown,可以通过如下代码直接断言是否为string类型: val, o…
golang 实现一个聊天室
最近看了一下go语言,就试着写了一个聊天室,练练手而已,但是对于我一个搞php的来说,go语言对我启发很大。 客服端 package main import ( "fmt" "net" "os" ) //定义通道 var…