欢迎来到 Kn's Blogs

这里,记录着我的思考和认识

项目


最新文章

2018-05-19

golang function-closure 实现机制

golang里面函数时first-class citizen,可以作为值进行参数传递,不管是普通函数“func abc()”,还是成员方法“func (x X) xxx()”,还是一个闭包“func () { return func(){….}}”……看上去很方便,不禁要问,golang里面funciton和closure是如何实现的呢?扒拉了下源码,这里简单总结下。 1 golang中函数内部表示是什么样子的? 看下golang cmd/compile/internal/types/type.go中对Func类型的定义: // Func contains Type fields specific to func types. type Func struct { Receiver *Type // function receiver,接受者类型,每个函数定义都包括该字段,可以为nil或non-nil Results *Type // function results,返回值类型 Params *Type // function params,参数列表类型 Nname *Node // function name,函数名 // Argwid is the total width of the function receiver, params, and results. // It gets calculated via a temporary TFUNCARGS type. 阅读全文

所有文章

2018-05-19, 《golang function-closure 实现机制》 tags: go, golang, closure
2018-05-19, 《golang select-case 实现机制》 tags: go, chann
2017-12-03, 《go风格协程库libmill之源码分析》 tags: libmill, coroutine, goroutine, go
2017-10-14, 《Assembly Language》 tag: assembly
2017-05-23, 《Protoc及其插件工作原理分析(精华版)》 tags: protoc, protoc-gen-go, protobuf
2017-05-19, 《Protoc工作原理分析》 tags: protoc, protoc-gen-go, protobuf
2017-05-02, 《Linux常见IO模型》 tags: io, io-multiplex, rtsig, aio
2017-04-27, 《协程的历史、现在和未来!》 tag: coroutine
2017-04-26, 《Coroutine-Switching》 tags: coroutine, ucontext, libtask
2017-04-05, 《Java NIO Tutorials》 tags: nio, java
2017-04-01, 《学习Apache Ant》 tags: maven, java
2017-02-25, 《我的兴趣列表》 tags: language, linux, algorithm, pattern
0001-01-01, 《Nothing, Just Linux!》 tags: linux, grub, plymouth, desktop
0001-01-01, 《golang method receiver-type的梗》 tags: go, method, receiver

关于

me.jpg

我来自中国大陆,成长在地球,活在自由民主的大脑里。

爱学习、爱分享,不计较个人利益的得失,物质总是暂时的,精神在人类历史中长存。

学习工作经历

  • 2009~2013,哈尔滨工业大学,本科,软件工程+计算机科学与技术
  • 2013~2016,四川大学,研究生,计算机技术+网络安全方向
  • 2016~至今,腾讯(深圳)科技有限公司,高级后台开发工程师

我的一点爱好

  • 独处,一个人走走看看、想东想西,思维活跃会让我感觉到自己的存在
  • 骑行,一辆单车,驰骋于大街小巷、郊区田园,会让我感觉到生命与自然的融合
  • 美术,点线面体,意由心生,与文字表达不同的是,它是另一种形式的情感抒发
  • 科学,美的东西往往是简单的,公理、定律、推论、假设,都是人类智慧的结晶
  • 自然,自然本身就很美,肉眼可见的叶脉、色素,宠物水汪汪眼睛背后的好奇与依赖
  • 编程,它不应是门技术,而应成为一种实用技能,我常编程来解决生活中遇到的问题
  • 阅读,书籍是人类进步的阶梯,也是和前辈进行精神交流、传承的方式,精神永存
  • 分享,个体能力、时间、寿命总是有限的,唯有分享、传承可期待更美的梦想

我的人生信条

  • 君子和而不同,小人同而不和
  • 兼听则明,偏听则暗
  • 得道多助,失道寡助

致谢

感谢你们

感谢 Github 提供了github.io,我才能便捷地搭建个人博客,在这里记录并与广大朋友们分享我的感悟。

感谢 Hugo 这一便捷的静态站点生成器,我才能专注于文档内容的撰写,并快速便捷地生成、发布站点。

感谢 Victoria Drake 提供了如此干净整洁美观的 Hugo 主题,非常喜欢这款主题,Perfect Design!

感谢 我的家人、朋友,因为你们的鼓励,我更加乐于追求真实的自己,真实的看法,真实的表达。

特别感谢

感谢 我的父亲,小时后对我严加管教、成人后让我自己拿主意,我才有了更客观、独立的认识。

感谢您对我的关爱、教育、陪伴和付出,我会一直努力,为了成就自己,也为了成为你的眼。

接下来的路,没有了你的陪伴、倾听,我显得有些孤单,但是,在心灵上我并不孤单。

父亲,一定会在遥远的天堂注视着我,注视着我的一举一动,注视着我进步,或者犯错。

无论结局怎样,我都会努力,努力活成我们期望的样子,一个顶天立地的男人,就像父亲一样。


联系方式

如果你有什么问题或建议,不要犹豫,告诉我你的想法,我们一起探讨。

很期待收到你的问题、建议,我会在每周的周末查收邮件,并尽快回复。

我的现在本地时间是 .

hit.zhangjie@gmail.com