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

  • 相关阅读:
    【学习总结】 小白CS成长之路
    Java程序员面试题收集(1)
    ECSTORE2.0 去页面底部版权
    vue-cli安装
    linux下安装nodejs
    Access denied for user 'root'@'localhost' (using password: YES)的解决
    想说的话
    十三:CSS之CSS的四种使用方法和优先级
    十二:CSS之基础语法
    十一:HTML之实现基本网页结构
  • 原文地址:https://www.cnblogs.com/bonelee/p/6860512.html
Copyright © 2011-2022 走看看