• 初识Golang编程语言


               初识Golang编程语言

                                  作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

     

      Go 是年轻而有活力的语言,有网友说:"Go语言将超过C,Java,成为未来十年最流行的语言",也有人说:"Go 是21世纪的C语言"。而我想说的是,不要盲目崇拜一门语言,语言只是一个工具,我们要找到语言的长处并将它的优势发挥到最大。比如在大数据生态圈领域,已经被Java站住脚跟了,当然还有一些C++的身影,但是很少看到Golang的身影。在数据分析领域,Python正在逐步取代R语言的进行开发。但是在容器编程领域,以Google为首的Kubernetes为例,就是使用Golang语言研发的。

      本篇博客主要是对Golang的一些特性做简单的介绍,如果刚刚接触开发的同学也别总想着一门语言打遍天下无敌手,编程语言只是我们完成日常工作的一个工具,我们要做认识编程语言的伯乐,而不要人云亦云。一般能把一门语言吹成全能的基本上都是一些培训机构,他们通常喜欢把一门语言吹上天,这样做的目的大多数都是为了"割韭菜",即不是让你花费巨额报名培训班就是想要卖书给你,当你把钱从腰包里掏出之后,对编程语言有个系统的了解才发现和培训机构讲的并太一样。

    一.什么是Go语言

    1>.Go语言官方介绍

      Go语言是有谷歌推出的一门编程语言。
    
      Go 是一个开源的编程语言,它能够让构造简单,可靠且高效的软件变得容易。

    2>.Go语言主要开发者

      Go 语言始于2007年,当时只是Google内部的一个项目,其最初设计目的是Rebert Griesemer,Unix泰斗Rob Pike和Ken Thompsopn。2009年11月10日,Go语言以一个自由的开源许可方式公开亮相。
    
      Go语言由其原始设计者加上Russ Cox,Andrew Gerrand,Ian Lance Taylor以及其它许多人在内的一个Google团队开发。Go语言采取一种开放的开发模式,吸引了许多来自世界各地的开发者为这门语言的发展贡献力量。其中有些开发者获得了非常好的声望,因此他们也获得了与Google员工一样的代码提交权限。

    3>.Go 语言在最近两年比较显而易见的变化

      本身的自举:
        也就是说,Go语言几乎完全用Go语言程序重写了自己,仅留有一些汇编程序。
        Go 语言的自举非常彻底,包括了最核心的编译器,链接器,运行时系统等。
        现在任何学习Go语言的人都可以直接读它的源代码了。此变化也使用Go程序的跨平台编译变得轻而易举。
      运行时系统的改进:     这主要体现在更高效的调度器,内存管理以及垃圾回收方面。
        调度器已能让goroutine更及时地获得运行机制。运行时系统对内存的利用和控制也更加精细了。因垃圾回收而产生的调度停顿时间已经小于原来的1%。
        另外,最大P数量的默认值由原先的1变为与当前计算机的CPU核心数相同。
      标准工具的增强:     在Go 1.4加入go generate之后,一个惊艳的程序调试工具go tool trace也被添加进来了。
        另外,go tool compile,go tool asm和go tool link等工具也已到位;一旦你安装好Go,就可以直接使用他们。同时,几乎所有的标准库工具和命令都得到了不同程度的改进。
      访问控制的细化:     这种细化始于Go 1.4,正式支持始于 Go 1.5,至今已被广泛应用。
        经过细化,对于Go程序中的程序实体,除了原先的两种访问控制级别(公开和包级私有)之外,又多了一种-模块级私有。这是通过把名称首字母大写的程序实体放入internal代码包实现的。   vendor机制的支持:
        自Go 1.5在之后,一个特殊的目录vendor被逐渐启用。
        它用于存放其父目录中的代码包所依赖的那些代码包。
        在程序被编译时,编译器会优先引用存于其中的代码包,这为固化程序的依赖代码迈出了很重要的一步。在Go 1.7中,vendor目录以及其背后的机制被正式支持。

      当然,上述变化并是不是全部。它的标准库也经历了超多的功能和性能改进。

    4>.Go 语言的发展方向

      网络编程语言
    
      区块链开发领域
    
      高性能分布式系统领域

    5>.Go 语言环境安装

      博主推荐阅读:
        https://www.cnblogs.com/yinzhengjie2020/p/12241858.html

    二.Go 语言特性

      开放源代码:
        这显示了Golang作者开放的态度以及营造语言生态的决心。顺便说一句,Go本身就是用Go语言编写的。

      静态类型和编译型:
        在Golang中,每个变量或常量都必须在声明时指定类型,且不可改变。
        另外,程序必须通过编译生成归档文件或可执行文件,而后才能被使用或执行。
        不过,其语法非常简介,就像一些解释性脚本语言那样,易学易用。

      跨平台:
        这主要是指跨计算架构和操作系统。目前,它以及支持绝大部分主流的计算架构和操作系统,并且这个范围还在不断扩大。
        只要下载与之对应的Go语言安装包,并且经过简单的安装和设置,就可以使Go就绪了。
        除此之外,在编写Go语言程序的过程中,我们几乎感觉不到不同平台的差异。

      自动垃圾回收:
        程序在运行过程中的垃圾回收工作一般由Go运行时系统全权负责。不过,Go也允许我们对此项工作进行干预。

      原生的并发编程:
        拥有自己的并发编程模型,其主要组成部分有goroutine(也课称为Go例程)和channel(也可称为通道)。
        另外,还拥有一个特殊的关键字go。

      完善的构建工具:
        它自带了很多强大的命令和工具,通过他们,可以很轻松完成Go程序的获取,编译,测试,安装,运行,分析等一系列工作。

      多编程范式:
        Go支持函数式编程。函数类型为第一等类型,可以方便地传递和赋值。
        此外,它还支持面向对象编程,有接口类型于实现类型的概念,但使用嵌入替代了继承。

      代码风格强制统一:
        Go安装包中有一个自己的代码格式化工具,可以用来统一程序的编码风格。

      高效的编程和运行:
        Go简介,直接的语法使我们可以快速编写程序。加之它更强大的运行时系统,程序可以充分利用计算环境飞快运行。

      丰富的标准库:
        Go是通用的编程语言,其标准库中有很多开箱即用的API。尤其是在编写者如系统级程序,Web程序和分布式程序时,我们几乎无需依赖第三方库。  

    三.博主分享学习Golang 的途径

      无论是学习Golang还是其它技术,博主认为获取学习途径的方法有很多种,每个人都有自己的学习方法:
        (1)去Golang的官方网站获取第一手学习资料;
        (2)去网上找一些博主的博客进行学习,因为有的博主比你先接触该语言,会有关于该语言的一些心得体会;
        (3)去网上搜索一些电子书籍,有经济实例的话建议大家购买正版授权的书籍,电子书估计你下载后也懒得看,博主推荐两本Golang相关的书<<Go语言程序设计>>和<<Go并发编程实战>>,这两本书我都买了,关注我的博客会发现我后续会分享的很多资料都摘自这两位大佬的内容;
        (4)网上找一些免费的视频学习,比如去"某宝"搜搜看;
        (5)报个培训班学习,博主并不推荐,因为大多数机构都是讲的入门级别的知识点,就讲解一些语法的使用,然后在Github上找了一些项目改动后教给你,在生产环境中压根就用不上,很难学到Golang的精髓,不仅浪费你的时间还非常耗费你的钱。
  • 相关阅读:
    LVM(逻辑卷管理器)部署、扩容、缩小
    部署磁盘阵列
    docker安装
    Linux基础命令
    awk补充
    awk
    shell脚本--grep与正则表达式
    文本处理工具 -wc、cut、sort、uniq的用法及参数
    Shell脚本编程原理
    重定向与管道符
  • 原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12241502.html
Copyright © 2020-2023  润新知