当前位置: 首页 > 面试题库 >

Go的修订历史背后的故事是什么?

应涵容
2023-03-14
问题内容

我注意到,前4个版本f6182e5abf5eb66d0bf8da3eac3363d7e788172d32922e72围棋源都来自很久以前Golang甚至提出,从1972年的最古老的存在。他们也都归功于AWK区名望的Brian
Kernighan。它们似乎是hello, world用C实现的。这是复活节彩蛋还是有实际用途?


问题答案:

该线程提到:

敬意,复活节彩蛋,开个玩笑,请选择:)。还要注意相关提交的作者

所述线程将此提交作为起点,但也指出了Golang项目的实际第一次提交,以及Go规范的第一次修订。

前四次提交的(指定的)“作者”是Brian Kernighan。
罗伯·派克(Rob
Pike)
于1980年代在贝尔实验室(Bell
Labs)与布莱恩(Brian)合作,因此这可被视为他职业渊源的参考。

这个复活节彩蛋的想法是为了说明Hello WorldC语言程序的演变:

(请参阅最近的GopherCon 2014 hellogophers.slide
4月演讲 -Rob
Pike

你好,世界

hg log -r 0:4
changeset:   0:f6182e5abf5e
user:        Brian Kernighan <bwk>
date:        Tue Jul 18 19:05:45 1972 -0500
summary:     hello, world

$ hg update -r 0
$ cat src/pkg/debug/macho/testdata/hello.b

main( ) {
    extrn a, b, c;
    putchar(a); putchar(b); putchar(c); putchar('!*n');
}
a 'hell';
b 'o, w';
c 'orld';

转换为C

changeset:   1:b66d0bf8da3e
user:        Brian Kernighan <bwk>
date:        Sun Jan 20 01:02:03 1974 -0400
summary:     convert to C

$ hg update -r 1
$ cat src/pkg/debug/macho/testdata/hello.c

main() {
    printf("hello, world");
}

转换为拟议的ANSI C

changeset:   2:ac3363d7e788
user:        Brian Kernighan <research!bwk>
date:        Fri Apr 01 02:02:04 1988 -0500
summary:     convert to Draft-Proposed ANSI C

$ hg update -r 2
$ cat src/pkg/debug/macho/testdata/hello.c

#include <stdio.h>

main()
{
    printf("hello, world\n");
}

最新修正:转换为ANSI C

changeset:   3:172d32922e72
user:        Brian Kernighan <bwk@research.att.com>
date:        Fri Apr 01 02:03:04 1988 -0500
summary:     last-minute fix: convert to ANSI C

$ hg update -r 3
cat src/pkg/debug/macho/testdata/hello.c


#include <stdio.h>

int
main(void)
{
    printf("hello, world\n");
    return 0;
}

转到规格起点

changeset:   4:4e9a5b095532
user:        Robert Griesemer <gri@golang.org>
date:        Sun Mar 02 20:47:34 2008 -0800
summary:     Go spec starting point.


 类似资料:
  • 附录 E. 修订历史 2004-05-20 (5.4) Added 第 12.1 节 “概览”. Added 第 12.2 节 “安装 SOAP 库”. Added 第 12.3 节 “步入 SOAP”. Added 第 12.4 节 “ SOAP 网络服务查错”. Added 第 12.5 节 “WSDL 介绍”. Added 第 12.6 节 “以 WSDL 进行 SOAP 内省”. Adde

  • 交互式洐合是修改单个提交的好方法。 git filter-branch是修改大量提交的好方法。

  • 我第一次使用 Python 是因为我需要为我所编写的 “钻石(Diamond)”程序编写一个安装程序,这样我就能让安装过程更加便捷。我必须要在 Qt 库的 Python 与 Perl 的绑定间做出选择。我在网上了做了些研究,然后我便发现了埃里克·雷蒙(Eric S. Raymond)撰写的一篇文章,埃里克是一名著名且备受尊重的黑客,在文章中他说 Python 已经成为了他最喜欢的编程语言。同时我也

  • 订单历史记录取决于结账后用户订购的产品。 它包括产品的历史记录,包括订单号,用户名,订单状态等。 您可以使用以下步骤查看产品的订单历史记录 - Step 1 - 转到Store ,然后单击Orders链接。 Step 2 - 您将获得订购产品列表的屏幕。 它包含如下字段 - Order Number - 这是产品的订单号。 Updated - 它指定产品最后更新的时间。 Name - 订购产品的用

  • 我们有一个Android应用程序,可以实现订阅,出于分析目的,我们需要用户进行的所有交易。 我们希望通过API获取所有事务,但找不到任何返回此信息的Googleendpoint。 在Google Play控制台中,我们可以看到这些事务。 在inspector中,我看到Google使用私有endpoint来获取这些数据,但我找不到任何公共APIendpoint。 Google私有endpoint是,

  • 问题内容: GoF的原始Builder模式与Joshua Bloch的“修订的GoF Builder模式”之间有什么区别? 问题答案: GoF模式着重于抽象化构造步骤,这样,通过更改构建器,您可以得到不同的结果,而“经修订的构建器”则针对由多个构造器添加的不必要的复杂性问题。因此,GoF模式更多地是关于抽象,而修订后的模式更多地是关于简单性(IMO)。 看一下http://en.wikipedia