自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 golang 局部变量地址作为返回值

golang 局部变量地址作为返回值的问题func createNode(v int) *node{ return &node{value:v} }func main(){ var root *node root=createNode(10) ...}在c/c++语言中,以上的代码逻辑显然有问题,createNode函数中创建了一个局部变量(空间分配在栈上),并将其...

2020-02-07 22:21:59 773

原创 golang Lazy Evaluation

func Interge() <-chan int { yield := make(chan int) count := 0 go func() { for { yield <- count count++ } }() return yield}var resu...

2018-06-03 22:59:21 1262 1

原创 golang 关于defer的一道题

func calc(x, y int) int { fmt.Println(x, y, x+y) return x + y}func main() { a := 1 b := 2 defer calc(a, calc(a, b)) a = 0 defer calc(a, calc(a, b))}执行结果1.defer...

2018-05-29 21:24:43 324

原创 golang 内置函数new()和make()的区别

golang中的new和makemake用于内建类型(map、slice 和channel)的内存分配。new用于各种类型的内存分配。内建函数new本质上说跟其它语言中的同名函数功能一样:new(T)分配了零值填充的T类型的内存空间,并且返回其地址,即一个*T类型的值。用Go的术语说,它返回了一个指针,指向新分配的类型T的零值。有一点非常重要:new返回指针。内建函数make(T, a...

2018-05-26 14:59:10 11906 4

原创 golang 切片合并(1)

func main() { a := []int{1, 2, 3} b := []int{2, 3, 4, 5, 6} a = append(a, b...) fmt.Println(a)}

2018-05-20 10:52:05 25152

原创 golang map键值互换

map键值互换首先想到的方法是构造另一个以原map的key作为value,以原map value为key的map,然后用for-range遍历原map并导入新map。v1版var ( o = map[string]int{"a": 0, "b": 0, "c": 2})func main() { fmt.Println(o) n := map[in...

2018-05-06 11:30:46 4639

原创 golang 闭包 闭包实现斐波那契数列

the way to go小练习——闭包实现斐波那契数列func fib() func() int { var a int = 0 var b int = 1 return func() int { c := a a = b b = a + c return c }}func main() {...

2018-05-06 09:49:23 2230

原创 golang 中的nil

golang中的nilnil在Go中相当与其它语言中的NULL、null和None等,使用中表示某一个变量为空。nil只能赋值给指针、channel、func、interface、map或slice类型的变量。如果将nil赋值给其他变量的时候将会引发panic。 由于Go中interface会同时存储类型和值,如果将一个nil对象赋值给一个interface,这个interface为非ni...

2018-05-04 20:18:56 749

原创 golang slice append小坑

append主要用于给某个切片追加元素注意 如果该切片存储空间(cap)足够,就直接追加,长度(len)变长;如果空间不足,就会*重新开辟内存*,并将之前的元素和新的元素一同拷贝进去...

2018-05-04 13:48:35 1016

原创 golang 函数作为参数传递(回调)

golang 函数作为参数传递(回调)的例子和其他很多语言一样,golang中函数也可以作为其它函数的参数进行传递,然后在其它函数内调用执行,一般称之为回调。语法:以函数签名作为主调函数的形参的类型,即传递一个指向函数的指针func main() { sayhello("john", addperfix)}func addperfix(perfix, name ...

2018-05-04 10:52:01 22442

原创 golang 内置函数

golang 内置函数Golang有一些不需要进行导入操作即可使用的内置函数, 函数 功能 close 用于管道通信,关闭chanal len、cap len 用于返回某个类型的长度或数量(字符串、数组、切片、map 、管道);cap用于返回某个类型的最大容量(只能用于切片和 map) new、make new 和 make 均是用...

2018-05-04 09:46:30 1402

原创 golang defer的执行时机

golang中defer的执行时机 官方文档:“A “defer” statement invokes a function whose execution is deferred to the moment the surrounding function returns, either because the surrounding function executed a retu...

2018-05-04 00:00:48 3166

原创 golang 类型断言

golang 类型断言类型断言是一个使用在接口值上的操作有时候,我们可能需要知道某个接口类型的实际类型,比如某个方法需要接收多种类型的数据并需做分别处理时,我们可以把形参设为空接口类型以接收任意类型的值,但是我们怎么反向知道里面实际保存了的是哪个类型的对象呢? 一种常用的方法是: • Comma-ok 断言语法value,ok := x.(T) x表示一个接口的类型...

2018-04-27 11:03:30 10726 2

原创 golang 切片去重(1)

golang slice去重方法1:通过map键的唯一性去重func RemoveRep(s []int) []int { start := time.Now() result := []int{} m := make(map[int]bool) //map的值不重要 for _, v := range s { if _, ok := m[v...

2018-04-15 10:45:14 3420

原创 jQuery实现图片轮播_移入移出

html xmlns="http://www.w3.org/1999/xhtml">head>meta http-equiv="Content-Type" content="text/html; charset=utf-8" />title>无标题文档title>head>style type="text/css"> *{ margin:0;} #flash { widt

2017-03-21 22:19:57 649

原创 jquery实现图片轮播_淡入淡出

<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>轮播</title><style

2017-03-19 22:25:15 532

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除