上一篇主题,讲解了Go 语言的基础知识与现状,这篇主题继续和大家分享 Go 语言的其他知识,预计 10 万字。

常量变量对比

  • C语言定义常量和变量格式
  • Go语言定义常量和变量格式
    • 除了以下标准格式外,Go语言还提供了好几种简单的语法糖



注释对比

// 被注释内容/* 被注释内容*/

在Go语言中,官方更加推荐使用单行注释,而非多行注释(详情可以直接查看Go官方源码)

运算符对比

  • 算数运算符和C语言几乎一样
    • Go语言中++、--运算符不支持前置
      • 错误写法: ++i; --i;

Go语言中++、--是语句,不是表达式,所以必须独占一行

      • 错误写法: a = i++; return i++;

关系算符和C语言一样

逻辑运算符和C语言一样

位运算符和C语言几乎一样

  • 新增一个&^运算符

赋值运算符和C语言几乎一样

  • 新增一个&^=运算符

流程控制语句对比

  • C语言流程控制中的if、switch、for在Go语言都可以使用
  • C语言中的四大跳转语句return、break、continue、goto在Go语言都可以使用
  • Go语言除了实现C语言中if、switch、for、return、break、continue、goto的基本功能以外,还对if、switch、for、break、continue进行了增强
    • 例如: if 条件表达式前面可以添加初始化表达式
    • 例如: break、continue可以指定标签
    • 例如: switch语句可以当做if/elseif来使用
    • ... ...

值得注意的是Go语言中没有while循环和dowhile循环, 因为它们能做的Go语言中的for循环都可以做

函数和方法对比

函数和方法对比

  • C语言定义函数格式
  • Go语言定义函数格式
  • C语言中没有方法的概念, 但是Go语言中有方法
    • 对于初学者而言,可以简单的把方法理解为一种特殊的函数

func (接收者 接受者类型)函数名称(形参列表)(返回值列表) {
函数体相关语句;
return 返回值;
}


编程思想对比

  • C语言是一门面向过程的编程语言
    • 面向过程: 按部就班, 亲力亲为,关注的是我应该怎么做?
    • 做饭例子: 面向过程做饭
      • 1.上街买菜
      • 2.摘菜
      • 3.洗菜
      • 4.切菜
      • 5.开火炒菜
      • 6.淘米煮饭
      • 7.吃饭


Go语言是门面向对象的编程语言

    • 面向对象:化繁为简, 能不自己干自己就不干,关注的是我应该让谁来做?
    • 做饭例子: 面向对象做饭
    • 1.找个会做饭女朋友 or 男朋友
    • 2.老婆我饿了 or 老公我饿了
    • 3.躺着...等她/他把饭做好
    • 4.吃饭


  • 不要把面向过程和面向对象想象得那么神奇, 它们只是思考问题的方式不同而已


其它新增特性

  • 接口
  • 并发
  • 反射
  • 异常处理
  • ....

由于字数限制,本文就分享到这里。


如果觉得有价值,点赞支持


@李南江

由于部分好友可能等不及更新,建议先看电子书。