Slice使用详解

在Golang语言中,数据类型不多,但是够用,开发项目过程中,Slice属于最常用的数据结构之一,对其原理理解不清楚,很容易会遗留bug,笔者查询了很多博客资料,对Slice的原理进行一个总结,如果有写的不清楚不明白之处,请多多包涵,并予以指正。 package main import "fmt" func main(){ s := []int{5} s = append(s,7) fmt.Println("cap(s) =", cap(s), "ptr(s) =", &s[0]) s = ap...阅读全文

2017.07.11 16:09 呵呵哈哈哈high
阅读:835 评论:0

Golang中高效拼接字符串

Go中可以使用“+”合并字符串,但是这种合并方式效率非常低,每合并一次,都是创建一个新的字符串,就必须遍历复制一次字符串。Java中提供StringBuilder类来解决这个问题。Go中也有类似的机制,那就是Buffer。 以下是示例代码: package main import ( "bytes" "fmt" ) func main() { var buffer bytes.Buffer for i := 0; i < 1000; i++ { buffer.WriteString("a") }...阅读全文

2017.07.11 16:54 TomorrowWu
阅读:4566 评论:0

断言

golang中的所有程序都实现了interface{}的接口,这意味着,所有的类型如string,int,int64甚至是自定义的struct类型都就此拥有了interface{}的接口,这种做法和java中的Object类型比较类似。那么在一个数据通过func funcName(interface{})的方式传进来的时候,也就意味着这个参数被自动的转为interface{}的类型。如果我们要返回这个interface{}变量,如下代码: func funcName(a interface{})...阅读全文

2017.07.11 20:21 sirius_ztz
阅读:1745 评论:0