29、.句号token在Go中有多少使用?(很多) a.B的含义需要使用到类型系统 但这对于人类来说非常清晰,读起来也非常容易。 针对指针的自动转换(没有->)。 30、PrintlnPrintln,不是println,头母大写才是导出符号。 知道它是反射驱动的(reflection-driven) 可变参数函数 参数类型是(…); 2010年2月1日变成(…interface{}) 31、(传统函数语法 32、”Hello, Gophers (some of whom know 中文)!”UTF-8编码的源码输入。字符串字面量也自动是utf8编码格式的。 但什么是字符串(string)呢? 首批写入规范的语法规则,今天很难改变了。(blog.golang.org/strings) 33、)没有分号 在go发布后不久我们就去除了分号 早期曾胡闹地尝试将它们(译注:指得是括号)去掉 最终接受了BCPL的方案 34、}第一轮结束。 旁白:还没有讨论到的 – 类型 – 常量 – 方法 – interface – 库 – 内存管理 – 并发(接下来将讨论) 外加工具,生态系统,社区等。 语言是核心,但也只是我们故事的一部分。 35、成功要素: – 站在巨人的肩膀上(building on history) – 经验之作(building on experience) 译注:最初的三个神级语言设计者 – 设计过程 – 早期idea提炼到最终的方案中 – 由一个小团队专门集中精力做 最终:承诺 Go 1.0锁定了语言核心与标准库。 36、另一轮让我们看第二个程序的类似演化过程。 37、问题:素数筛(Prime sieve)问题来自于Communicating Sequential Processes, by C. A. R. Hoare, 1978。 “问题:以升序打印所有小于10000的素数。使用一个process数组:SIEVE,其中每个process从其前驱元素输入一个素数并打印 它。接下 来这个process从其前驱元素接收到一个升序数字流并将它们传给其后继元素,这个过程会剔除掉所有是最初素数整数倍的数字。 38、解决方案在1978年的CSP论文中。(注意不是Eratosthenes筛) 这个优美的方案是由David Gries贡献出来的。 39、CSP在Hoare的CSP论文中:
没有channel。能处理的素数的个数是在程序中指定的。 40、Newsqueakcirca 1988。 Rob Pike语言设计,Tom Cargill和Doug McIlroy实现。 使用了channels,这样个数是可编程的。(channel这个idea从何而来?)
41、sieve.go,2008年3月5日使用go规范编写的第一个版本,可能是第二个由go编写的重要程序。 >用于发送;<用于接收。Channel是指针。Main是头字母大写的。
|