Dive into Golang @许式伟 2013-07-19 2 自我介绍 七牛 七牛云存储_第1页
Dive into Golang @许式伟 2013-07-19 2 自我介绍 七牛 七牛云存储_第2页
Dive into Golang @许式伟 2013-07-19 2 自我介绍 七牛 七牛云存储_第3页
Dive into Golang @许式伟 2013-07-19 2 自我介绍 七牛 七牛云存储_第4页
Dive into Golang @许式伟 2013-07-19 2 自我介绍 七牛 七牛云存储_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、潜入格朗,徐世伟,2013年7月19日,自我介绍。七牛七牛云存储CEO围棋语言编程作者编程围棋翻译家盛大创新研究院高级研究员盛大祥云计划(盛大云的前身)创始人盛大网络磁盘创始人百度百度网络搜索金山软件技术总监金山软件技术总监WPS办公室2005首席建筑师金山实验室创始人研究云存储主题,戈兰思维方式,最小精神负担原则,最小特征,最小惊喜和最小出错机会,戈兰思维方式,围棋,下一个爪哇?不,下一个C!更少的是指数多最小特征原则:如果一个函数在解决任何问题中没有显著的价值,那么它就不提供显式的表达:最令人垂涎的书面和获得语言的并行支持类型系统:极其简化的接口但是完整的OOP结构可以定义成员方法,这是G

2、o对所有OOP支持的内容的简化的符号访问控制,用多个返回值、内置的错误类型和延迟函数的内聚性显式这个指针错误处理规范函数:例如, 强大的组合能力消除了堆和栈之间的边界,消除了堆和栈之间的边界,支持最友好的C语言、Golang思维方式、Go、基于连接和组合的语言管道以及并行模型,非常容易在Go中实现管道,并且非常容易在Go中并行化任务。 围棋组件的连接是松散耦合的。他们彼此之间有着最自然的独立性。Go组件之间的协议通过接口来描述,它们在编译时被检查和组合。他们不支持继承,但是他们比继承更好,继承不是COM,而是比COM和戈兰的思维方式更好。以软件工程为目的的语言设计是快速编译的,它严格依赖于管理

3、代码风格的强一致性,这种一致性倾向于组合而不是继承。你今天在说什么?不要谈库不通,介绍格朗特色,打破砂锅,选择格朗地方特色,挖深坑,潜入格朗,切片接口闭包并发,切片,数据结构数据*型Len int Cap int直观含义:数组片段指向数组数据范围(数据Len)本质:动态数组可以动态扩展数组(向量)与Cap成员是证明,切片, 数组片段切片=从:到切片的数组=从:到切片的数组=从:到切片的数组=从:到切片2的数组=从:到切片2的切片可以超出切片范围。 因此,它被称为reslice而不是subslice slice2,不能超出基础数组的范围。取区间大小/容量-len(slice)/cap(slice

4、)来复制元素-copy(dest,src)返回被复制元素的数量:min(len(dest),实际上,如果dest是字节,src也可以是字符串追加元素追加(dest,val)追加(dest,v1,v2,VN)追加(目的地,src.),切片,示例代码arr:=6int0,1,2,3,4,5 slice :=arr 1:3 slice 23360=slice 1:3结果切片,数据=ifofoo=未命名,接口,赋值varfoo ifoo=I闭包si=func () fmt。println (I)闭包0()闭包1()不认为0和1会被打印,但实际打印是2和2。i :=0的修正方法var闭包2func (;

5、I 2;我值:=I closuresi=func()fmt . println(val)闭包0()闭包1(),并发编程,goroutine的轻量级实例(类比:协同学/纤程)没有上限(仅受内存限制),其创建/切换成本较低,但不应被视为零成本。或者我们应该注意创作高屋建瓴的频率和数量?信道本质上是消息队列执行者之间非常传统的通信工具。sync.Mutex/RWMutex/Cond/etc不应该把频道视为万金油,但是互斥体仍然应该是互斥体。并行编程(并发),误解:通道被用作互斥(互斥应该正常使用)。例如,由多个goroutine访问一组共享变量的成本被用作消息队列,并且通道的成本高于Mutex。通道

6、内有Mutex,因为它属于共享变量,通道内可能有Cond,用于等待或唤醒合格的goro tine来转移cpu,并让另一个goro tine获得执行机会。这个切换周期并不低,远远高于互斥体检查竞争状态的成本(后者通常只是一个原子操作)。并行编程(并发),使用其他的结果,如通道done:=make (chanresult,1) gofunc().完成-结果().结果:=-donefmt.println(结果),并行编程(并发),不永久等待其他人的结果,另一方可能有异常(考虑超时).完成-结果().选择病例结果:=-done: fmt。Println(结果)案例时间。(3 *次后。第二): fmt。Println(超时),并行编程(并发),给多人相同的工作,谁先完成工作(考虑超时):=使(改变结果,3)3360=0;I 3;i go func().完成-结果().选择病例结果:=-done: fmt。Println(结果)案例时间。(3 *次后。第二): fmt。Println(timeout)、并发编程、生产者/消费者模型在并行编程中,多个goroutine

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论