ch1、Go语言简介

1、什么是Go语言

  • Go语言(Golang)是Google公司2009年推出的一门"高级编程言语", 目的是为了解决:

    • "现有主流编程语言"明显落后于硬件发展速度的问题
    • 不能合理利用多核CPU的优势提升软件系统性能的问题
    • 软件复杂度越来越高, 维护成本也越来越高的问题
    • 企业开发中不得不在快速开发和性能之间艰难抉择的问题
  • Go语言专门针对多核CPU进行了优化, 能够充分使用硬件多核CPU的优势, 使得通过Go语言编写的软件系统性能能够得到很大提升
  • Go语言编写的程序,既可以媲美C或C++代码的运行速度, 也可以媲美Ruby或Python开发的效率
  • 所以Go语言很好的解决了"现有主流编程语言"存在的问题, 被誉"现代化的编程语言"

2、Go语言的优势

  • 简单易学

    • Go语言的作者都有C的基因,Go自然而然也有了C的基因,但是Go的语法比C还简单, 并且几乎支持大多数你在其他语言见过的特性:封装、继承、多态、反射等
  • 丰富的标准库
    • Go目前已经内置了大量的库,特别是网络库非常强大
    • 前面说了作者是C的作者,所以Go里面也可以直接包含c代码,利用现有的丰富的C库
  • 跨平台编译和部署
    • Go代码可直接编译成机器码,不依赖其他库,部署就是扔一个文件上去就完事了. 并且Go代码还可以做到跨平台编译(例如: window系统编译linux的应用)
  • 内置强大的工具
    • Go语言里面内置了很多工具链,最好的应该是gofmt工具,自动化格式化代码,能够让团队review变得如此的简单,代码格式一模一样,想不一样都很困难
  • 性能优势: Go 极其地快。其性能与 C 或 C++相似。在我们的使用中,Go 一般比 Python 要快 30 倍左右
    • 语言层面支持并发,这个就是Go最大的特色,天生的支持并发,可以充分的利用多核,很容易的使用并发
    • 内置runtime,支持垃圾回收

Go语言的吉祥物是地鼠
地鼠的特点是速度快、成群结队、头脑简单
而Go语言的特点正好也是编程速度快、并发性好、简单易学

3、Go语言应用场景

  • 网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用、内存数据库等
  • 云平台开发,目前国外很多云平台在采用Go开发
  • 服务器编程, 以前你如果使用Java或者C++做的那些事情,都可以用Go来做
  • 分布式系统,数据库代理器等
  • 它可以做从底层到前端的任何工作

4、如何学习Go语言

  • Go语言被称之为现代化的C语言, 所以无论是从语法特性, 还是作者本身, Go语言都与C语言有着莫大的关系, 所以学习本套课程之前如果你有C语言的基础, 那么将会事半功倍
  • 对于初学者而言, 学习编程的捷径只有一条, 那就是多动手

竹子用了4年的时间, 仅仅长了3cm, 从第五年开始, 以每天30cm的速度疯狂地生长, 仅仅用了六周的时间就长到了15米。 其实,在前面的四年, 竹子将根在土壤里延伸了数百平米。 做人做事亦是如此, 不要担心你此时此刻的付出得不到回报, 因为这些付出都是为了扎根。

ch1、Go语言简介相关推荐

  1. java程序包不存在_第一章 Java语言简介

    Java语言简介 Java之父 James Gosling(詹姆斯·高斯林) 正式诞生时间 1995年,已有二十多年历史 三大方向 JavaSE(桌面版,基础需重点掌握) JavaME(移动版,现在基 ...

  2. Go 语言简介(下)— 特性

    希望你看到这篇文章的时候还是在公交车和地铁上正在上下班的时间,我希望我的这篇文章可以让你利用这段时间了解一门语言.当然,希望你不会因为看我的文章而错过站.呵呵. 如果你还不了解Go语言的语法,还请你移 ...

  3. c语言中return的作用_C语言简介

    C语言简介 c语言是人和机器交流的语言. c语言是面向过程的语言 C语言的优点:代码量小.执行速度快.功能强大.编程自由 英语不好能不能学:C语言一共32个关键字,以及为数不多的规则.建议三年级以下学 ...

  4. r语言简介_R语言简介

    r语言简介 R is a language and environment for statistical computing and graphics that is supported by th ...

  5. C++程序设计【一】之 C++ 语言简介

    文章目录 第一章:C++ 语言简介 一.C++ 语言的发展简史 二.C++ 语言的特点 1.与C语言相比,C++语言的优点 2.基本的输入 / 输出 3.头文件和命名空间 4.强制类型转换运算符 5. ...

  6. php语言开始和结束分别为,0055 PHP语言简介和HelloWorld

    0055 PHP语言简介和HelloWorld 作者:PHPYuan 时间:2018-10-01 03:41:29 第3章学习了如何编写JavaScript代码来动态修改网页内容. 虽然JavaScr ...

  7. 《从问题到程序:用Python学编程和计算》——1.2 Python语言简介

    本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第1章,第1.2节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1. ...

  8. lua脚本之lua语言简介以及lua的安装

    本博主不擅于进行文字创作,所以,相当一部分文字皆复制于其他博文.还希望能够得到谅解.  一.Lua语言简介 Lua是一个免费的开源软件,可以免费用于科研及商业.Lua具有一个专家团队在维护和升级,其设 ...

  9. go语言学习:语言简介

    一.Go语言简介 Go语言(或 Golang) 起源于 2007 年,并在 2009 年正式对外发布.Go 是非常年轻的一门语言,它的主要目标是"兼具 Python 等动态语言的开发速度和 ...

最新文章

  1. C++ Builder技巧集锦
  2. JavaScript 日期格式化 简单有用
  3. 020_MySQL运算符
  4. Matlab读取点云数据显示
  5. zookeeper客户端库curator分析
  6. java dcl 失效解决_DCL失效原因和解决方案
  7. “人·机”互补路径下技能人才的培养
  8. php scsi平台,三大SCSI Target平台PK:让服务器化身SAN
  9. 如何通过a链接实现图片下载
  10. vue jsx v html,Vue 中使用jsx示例
  11. PDO 学习与使用 ( 二 ) PDO 数据提取 和 预处理语句
  12. 正则表达式常用的校验方法
  13. 图论们,小爷来ak你们啦瓦咔咔~
  14. WebGL实践篇(九)—— 光照:点光源
  15. Xavier NX+KU040图像处理卡
  16. [渝粤教育] 西南科技大学 财务管理与分析 在线考试复习资料(1)
  17. 微信小程序主体如何变更?小程序迁移流程详解
  18. Android [USB]MTP的介绍?驱动如何安装?
  19. poco库学习笔记(1) poco库的安装
  20. java--项目1->家庭收支表

热门文章

  1. CSS | 解决html中img标签图片底部存在空白缝隙的问题
  2. 信息学奥赛一本通——1011:甲流疫情死亡率
  3. Android常用命令行指令
  4. 优化图像处理中均值和方差计算
  5. 英现绚丽冰墙 犹如魔幻王国纳尼亚(组图)
  6. 数据结构学习笔记4 树的基础知识
  7. Python多种方法生成菲波那切数列
  8. java单引号和双引号_Java中的单引号和双引号之间有区别吗?
  9. 【ArcGIS微课1000例】0043:ArcGIS缩略图的创建及应用
  10. P02014186陈镐镐