1、空接口Golang 中的接口可以不定义任何方法,没有定义任何方法的接口就是空接口。空接口表示,没有任何约束,因此任何类型变量都可以实现空接口。空接口在实际项目中用的是非常多的,用空接口可以表示任意数据类型func main() {
// 定义一个空接口 x, x 变量可以接收任意的数据类型
var x interface{}
s := "你好 golang"
x = s
fmt.Printf("type:%T value:%v\n", x, x)
i := 100
x = i
fmt.Printf("
在进入for循环时,若循环判断条件中有len()函数,示例如下:
for i := 0; i < len(L); i++ {
.................
}
这种写法存在一个缺陷,就是每次进行循环遍历时,都要计算一遍len(L)的值,损耗了性能。此时应该改为下面这种写法:
for i, length := 0, len(L); i < length; i++ {
.....
结构体和Json相互转换当Golang要为App或者小程序提供Api接口数据时,涉及到结构体和Json之间的相互转换Golang序列化是指把结构体数据转换成Json格式的字符串;Golang Json的反序列化是指把Json数据转化成Golang中的结构体对象Golang中的序列化和反序列化主要通过"encoding/json"包中的json.Marshal()和json.Unmarsual()序列化结构体中私有属性不能被json包访问(首字母必须大写)package main
import ("fmt"
使用go get gopkg.in/ahmetb/go-linq.v3import . "gopkg.in/ahmetb/go-linq.v3"import . 的意思是直接使用库的方法,而不使用前缀。当然你也可以添加,官方的写法是这样的。案例定义一个员工类type Employee struct { Name string Age int Sex int // 0 男 1 女 WorkYear int //工龄}创建不同的列表func initEmployeeData() [