zoukankan      html  css  js  c++  java
  • go语言笔记——是c开发的 lex yacc进行词法和语法分析,go不支持函数和运算符重载,不支持类型继承,也不支持断言,还有泛型

    从 Go 1.0.3 版本开始,不再使用 8g,8l 之类的指令进行程序的构建,取而代之的是统一的 go build 和 go install 等命令,而这些指令会自动调用相关的编译器或链接器。

    如果你想获得更深层次的信息,你可以在目录 $GOROOT/src/cmd 下找到编译器和链接器的源代码。Go 语言本身是由 C 语言开发的,而不是 Go 语言(Go 1.5 开始自举)。词法分析程序是 GNU bison,语法分析程序是名为 $GOROOT/src/cmd/gc/go.y 的 yacc 文件,它会在同一目录输出 y.tab.{c,h} 文件。如果你想知道更多有关构建过程的信息,你可以在 $GOROOT/src/make.bash 中找到。

    摘自:https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/02.1.md

    go不支持的特性:

    许多能够在大多数面向对象语言中使用的特性 Go 语言都没有支持,但其中的一部分可能会在未来被支持。

    • 为了简化设计,不支持函数重载和操作符重载
    • 为了避免在 C/C++ 开发中的一些 Bug 和混乱,不支持隐式转换
    • Go 语言通过另一种途径实现面向对象设计(第 10-11 章)来放弃类和类型的继承
    • 尽管在接口的使用方面(第 11 章)可以实现类似变体类型的功能,但本身不支持变体类型
    • 不支持动态加载代码
    • 不支持动态链接库
    • 不支持泛型
    • 通过 recover 和 panic 来替代异常机制(第 13.2-3 节)
    • 不支持断言
    • 不支持静态变量

    关于 Go 语言开发团队对于这些方面的讨论,你可以通过 Go 常见问题 页面查看。

    1.2.8 使用 Go 语言编程

    • 简化问题,易于学习
    • 内存管理,简洁语法,易于使用
    • 快速编译,高效开发
    • 高效执行
    • 并发支持,轻松驾驭
    • 静态类型
    • 标准类库,规范统一
    • 易于部署
    • 文档全面
    • 免费开源

    转自:https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/01.2.md

  • 相关阅读:
    Openstack API 开发 快速入门
    virtualBox虚拟机到vmware虚拟机转换
    使用Blogilo 发布博客到cnblogs
    Openstack Troubleshooting
    hdoj 1051 Wooden Sticks(上升子序列个数问题)
    sdut 2430 pillars (dp)
    hdoj 1058 Humble Numbers(dp)
    uva 10815 Andy's First Dictionary(快排、字符串)
    sdut 2317 Homogeneous squares
    hdoj 1025 Constructing Roads In JGShining's Kingdom(最长上升子序列+二分)
  • 原文地址:https://www.cnblogs.com/bonelee/p/6860512.html
Copyright © 2011-2022 走看看