Effective Go(官方文档)笔记

  1. 自己主动局部变量提升(编译期完毕?):return &...;
  2. 内置函数:
    1. new/make
    2. copy, append
    3. delete
    4. range(这是keyword吧?由于后面没有())
  3. array是值对象
  4. slice:引用array
    1. 2维切片(略)
  5. map
    1. if seconds, ok := timezone[tz]; ok { ...
  6. func (f *File) Read(buf []byte) (n int, err error) { ...
    1. 注意这里给*File类型添加了一个Read方法,buf是传出參数(slice是引用!

  7. fmt.Printf("...%d...", 1); //C风格的;
    1. fmt.Printf(os.stdout, args, ...); //C++风格的?这里args须要实现io.Writer接口(序列化?)
    2. %v, %#v
    3. %T
  8. type MyString string
  9. switch t := t.(type){ ... //Go的执行时内省是怎么实现的?这意味着每个value/ref都包括了一个type域字段吗?
  10. 变參:v ...interface{} ==> v... (不加...的单独v可看作slice,可应用range操作)
  11. func append(slice []T, elements ...T) []T
    1. append:实际上不能在执行时决定T的类型。需编译器在编译时的支持(所谓的builtin函数)
  12. defer:推迟到func结束前运行。即使是panic(函数作用域。非block)
    1. C/C++/Java程序猿能够理解为func内部总体包以try{...}finally{...}?
  13. 枚举:const { _= iota \n A B C ... }
  14. 变量组声明:var { ... }
  15. 每一个文件里的init():用于验证初始状态?
  16. sort回调:Len() int, Less(i, j int) bool, Swap(i, j int) //这相当于把排序对象当作一个C++里的RandomAccessIterator接口?
  17. 类型转换
    1. str := value.(string) //如类型不匹配则runtime error;
  18. net/http
    1. type Handler interface {

      ServHTTP(w ResponseWriter, req *Request)
    2. => 一旦有了Handler实例,向http注冊:http.Handle("/path", handler)
  19. tie a channel to web page ?

  20. 为func扩展方法:
    1. type HandlerFunc func(ResponseWriter, *Request)
    2. func (f HandlerFunc) ServHTTP(w ..., req ...) { f(w, req) }
  21. _ = fd //unused, WebKit/Chromium里常常能够见到这样的写法,未使用的变量显式标记。未用到的代码要删除
  22. Embedding(type的组合)
    1. type struct里能够直接增加其它type的名字,无需变量名字。此时相当于type traits的mixin了?
  23. Share by communicating
    1. Goroutines:the stack starts small(可动态调整的栈)——这可能就是Go支持大规模并发程序的原因了
    2. <-chan:等待完毕消息(自己主动堵塞)
  24. * for循环变量(设为i)是重用的?=>
    1. go func(i ...){ ... )(i) //传递进闭包,产生新的副本
    2. i := i //名字的shadowing(这个特性C语言是没有的。C++的namespace能够觉得类似?)
  25. Channels of channels
  26. 并行:runtime.GOMAXPROCS(ncpu)
  27. panic/recover
    1. recover在unwinding时运行,即defer func() {...}中。

Effective Go(官方文档)笔记的更多相关文章

  1. docker官方文档笔记

    Docker在 CentOS7.X上运行.Docker可能在其他EL7的兼容版本中成功安装,但是官方并未进行测试,因此也不提供任何支持. 系统环境要求 docker必须运行在64-bit的系统上,对于 ...

  2. Vue官方文档笔记(二)

    23.$refs是什么东东? 通过在标签上设置ref属性,然后在Vue实例方法中可以通过$refs拿到这些标签,如: <input ref="input"> metho ...

  3. React官方文档笔记之快速入门

    快速开始 JSFiddle 我们建议在 React 中使用 CommonJS 模块系统,比如 browserify 或 webpack. 要用 webpack 安装 React DOM 和构建你的包: ...

  4. Vue官方文档笔记

    1.如何创建一个Vue实例对象? var vm = new Vue({ el: "#app", //标签id 或 标签类名 data:{ //双向绑定的数据 message: &q ...

  5. Spring 官方文档笔记---Bean

    In Spring, the objects that form the backbone of your application and that are managed by the Spring ...

  6. pm2 官方文档 学习笔记

    一.安装 1.安装 npm install pm2 -g 2.更新 npm install pm2 -g && pm2 update pm2 update 是为了刷新 PM2 的守护进 ...

  7. vue.js 2.0 官方文档学习笔记 —— 01. vue 介绍

    这是我的vue.js 2.0的学习笔记,采取了将官方文档中的代码集中到一个文件的形式.目的是保存下来,方便自己查阅. !官方文档:https://cn.vuejs.org/v2/guide/ 01. ...

  8. Swift -- 官方文档Swift-Guides的学习笔记

    在经历的一段时间的郁闷之后,我发现感情都是虚伪的,只有代码是真实的(呸) 因为看了swift语法之后依然不会用swift,然后我非常作死的跑去看官方文档,就是xcode里自带的help>docu ...

  9. ios学习笔记第四天之官方文档总结

    start developing ios app today. 官方文档的体系结构为: 各层的主要框架图: objectice-c是动态语言 Objective-C 为 ANSI C 添加了下述语法和 ...

随机推荐

  1. SVM用于线性回归

    SVM用于线性回归 方法分析 在样本数据集()中,不是简单的离散值,而是连续值.如在线性回归中,预测房价.与线性回归类型,目标函数是正则平方误差函数: 在SVM回归算法中,目的是训练出超平面,采用作为 ...

  2. Flowerpot(单调队列)

    描述 Farmer John has been having trouble making his plants grow, and needs your help to water them pro ...

  3. 面向对象编程(四)继承,概念及super关键字,final关键字,Object类常见方法

    继承 概念: ①   继承背后的思想就是基于已存在的类来构建新类; ②   当从已存在类继承时,就重用了它的方法和属性,还可以添加新的方法和属性来定制新类以应对需求; ③   当从其它类导出的类叫作子 ...

  4. BZOJ 4820 [Sdoi2017]硬币游戏 ——期望DP 高斯消元

    做法太神了,理解不了. 自己想到的是建出AC自动机然后建出矩阵然后求逆计算,感觉可以过$40%$ 用一个状态$N$表示任意一个位置没有匹配成功的概率和. 每种匹配不成功的情况都是等价的. 然后我们强制 ...

  5. (转)解决fasterxml中string字符串转对象json格式错误问题(无引号 单引号问题)

    原文地址:解决fasterxml中string字符串转对象json格式错误问题 com.fasterxml.jackson.databind.ObjectMapper mapper = new com ...

  6. bzoj3997[TJOI2015]组合数学(求最长反链的dp)

    组合数学 给出一个网格图,其中某些格子有财宝,每次从左上角出发,只能向下或右走.问至少走多少次才能将财宝捡完.此对此问题变形,假设每个格子中有好多财宝,而每一次经过一个格子至多只能捡走一块财宝,至少走 ...

  7. SystemServer分析

    1 SystemServer分析 SystemServer的进程名就是前面所说的“system_server”,是zygote进程“app_process”fork出来的第一个子嗣,其重要性不言而喻. ...

  8. TroubleShoot: Excel Services Fix - "The workbook cannot be opened".

    1. 问题描述: 在SharePoint 2013 文档库中打开Excel 文件提示"The workbook cannot be opened" 错误提示框,文档不能正常显示. ...

  9. 【Vijos1222】等值拉面(DP)

    题意:有N个数对(a[i],b[i]) 每次可以把(x,y)变成(x+a[i],y+b[i])或(x+b[i],x+a[i]),后者称为交换一次 求使abs(x-y)最小时的最小交换次数 n<= ...

  10. DataSet用法一:添加代码创建的表DataTable,设置主键外键,读取及修改DataSet表中数据

    原文发布时间为:2008-08-01 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Configuration ...