「Go学习笔记」1.初识Go

前言

因为在公司普遍使用Docker的大环境下,忽然对它的编程语言(Go)了解下。而且感受如今Go语言的应用也是愈来愈普遍,不少互联网大厂都在使用,目前利用业余时间来学习下,主流仍是Java,学明白之后可能考虑转哦🤡。若是你也感兴趣不如一块儿来学习。git

Go介绍

  • 简史程序员

    Go语言是Google于2009年正式发布的一款开源的静态编译型语言。Go语言最先于2007年Robert Griesemer(Java HotSpot虚拟机、V8引擎开发者之一)和Ken Thompson(贝尔实验室UNIX团队成员,C语言、UNIX和Plan9创始人之一)与Rob Pike三人在业余时间联合开发。(老外就是吊)时至今日Go语言已完成自举,社区生态斐然,包括大量拿的出手的杀手锏级项目(Moby、Docker、Kubernetes、Gogs、Grafana、Etcd)。github

  • 特性golang

    1. Go语言拥有自动垃圾回收功能,同时也容许开发人员干预回收操做。
    2. Go语言有着更加丰富的内置类型,在错误处理方面语法更加精简高效。
    3. Go语言函数支持多个返回值,而函数也是一种类型,能够做为参数传递。
    4. Go语言对多核处理器编程进行了优化,能够从程序与结构方面来实现并发编程。
    5. Go语言初次编译速度媲美C/C++,甚至二次编译的速度明显快于C/C++,同时又拥有接近于Python等解释型语言的简洁。
  • 命名规范编程

    Go语言的项目命名通常采用 【域名+项目名】,例如:github.com/example,这样命名的目录一是能够分割项目,不容易重名,二是可以迅速找到原项目的地址,三是方便获取代码包。vim

  • 代码强制格式化api

    Go语言有一个特点就是强制代码格式化,在你保存代码以后,可使用go fmt工具格式化,固然即便没有手动格式化,在编译时,Go语言编译器也会自动格式化全部源代码,这种强制格式化的作法能够有效统一编码风格。bash

开发环境

目前Go语言支持Linux、FreeBSD、Mac OS、和Windows平台,安装包能够从 golang.google.cn/dl/ 下载。并发

基本命令及使用

  • 基本命令 安装Go语言环境后就可使用go命令了,直接输入go help查看有哪些命令可用:编程语言

    $ go help
      go是用于管理Go语言源代码的工具。
      用法:
          go command [arguments]
          
      包含的命令以下:
      - build: 编译源代码包和依赖。
      - clean: 删除对象文件。
      - doc: 显示Go包或程序实体的文档。
      - env: 打印输出Go语言环境的变量信息。
      - bug: bug提交程序。
      - fix: 修复程序。
      - fmt: 格式化源码包中代码。
      - generate: 经过扫描Go源码中的go:generate注释来识别要运行的常规命令。
      - get: 下载并安装指定的包与依赖。
      - install: 编译并安装指定的包与依赖。
      - list: 打印指定源码包信息。
      - run: 编译并运行Go程序。
      - test: 测试一个源码包。
      - tool: 运行一个指定的tool。
      - version: 打印输出Go环境版本。
      - vet: 检查源码包中可能出现的错误。
      使用"go help [command]"查看每个命令的使用细节。
    复制代码
  • 目录结构

    1. GOROOT结构

    $GOROOT 做为Go语言环境的根目录,放置了下面这些内容:

    & cd $GOROOT && ls -l
    -rw-r--r--    1 root  wheel  55389  9 26 02:52 AUTHORS    # 全部参与Go语言开发的人员名单
    -rw-r--r--    1 root  wheel   1339  9 26 02:52 CONTRIBUTING.md    # 为Go语言贡献代码的说明
    -rw-r--r--    1 root  wheel  84339  9 26 02:52 CONTRIBUTORS   # 全部贡献者名单
    -rw-r--r--    1 root  wheel   1479  9 26 02:52 LICENSE    # Go语言的开源协议
    -rw-r--r--    1 root  wheel   1303  9 26 02:52 PATENTS    # Go语言专利说明
    -rw-r--r--    1 root  wheel   1607  9 26 02:52 README.md    # 说明文件
    -rw-r--r--    1 root  wheel    397  9 26 02:52 SECURITY.md
    -rw-r--r--    1 root  wheel      8  9 26 02:52 VERSION    # Go语言版本文件
    drwxr-xr-x   19 root  wheel    608  9 26 02:55 api  # Go语言API相关(变量、常量、函数)
    drwxr-xr-x    4 root  wheel    128  9 26 02:55 bin   # 用于存储标准命令执行文件,go、godoc、gofmt三件套
    drwxr-xr-x   50 root  wheel   1600  9 26 02:55 doc   # 存放标准库的文档
    -rw-r--r--    1 root  wheel   5686  9 26 02:52 favicon.ico  # Go语言的图标
    drwxr-xr-x    3 root  wheel     96  9 26 02:55 lib   # 存放一些特殊的库文件
    drwxr-xr-x   16 root  wheel    512  9 26 02:55 misc   # 辅助工具和说明
    drwxr-xr-x    6 root  wheel    192  9 26 02:55 pkg    # 存放Go语言标准库生成的文件
    -rw-r--r--    1 root  wheel     26  9 26 02:52 robots.txt    # 禁止搜索引擎索引本地启动的Go文档
    drwxr-xr-x   71 root  wheel   2272  9 26 02:55 src    # 存放GO语言本身的源代码
    drwxr-xr-x  327 root  wheel  10464  9 26 02:55 test   # 存放测试验证相关的文件
    复制代码
    1. GOPATH结构

    $GOPATH就是一个工做目录,咱们开发GO语言程序就是在这里进行的,这个目录通常有三个文件夹:

    - bin: 存放go install生成的可执行文件前面把$GOPATH/bin路径加入PATH环境变量后就能够在全局任意位置使用这个文件夹内的执行文件。
    - pkg: 存放go编辑生成的文件。
    - src: 存放咱们开发的Go项目的源代码,不用工程项目的代码已包名区分。
    复制代码

开发工具

  • Visual Studio Code

    来自微软的开源编辑器Visual Studio Code的确是开发Go语言程序的好工具之一,庞大的生态系统使得它不只仅是一个编辑器,它还拥有大部分Go语言开发过程当中使用的工具链。

  • VIM-Go

    VIM编辑器是大部分程序员的最爱之一,在VIM的生态中也有一款比较流行的GO语言开发插件----VIM-GO,安装这个插件与安装其余VIM插件的方法同样。

  • Gogland

    来自著名的Jetbrains公司开发的IDE(Goland)是一款专门为Go语言开发而设计的IDE。

  • LiteIDE

    LiteIDE是一款专门为GO语言开发的跨平台轻量级集成开发环境,LiteIDE是开源的工具,代码托管在github上。

第一个Go程序

如今开始编写第一个程序了,建立一个组织目录,例如 code.local,而后创建一个项目名为hello-word,最终目录路径为$PATH/src/code.local/hello-word

接来下使用vim 编辑一个main.go

而后:wq保存,接来下能够直接使用go run命令运行程序。
到此咱们就完成了第一个go程序。随着go语言愈来愈🔥,我对它也是很感兴趣,无奈没有太多的时间来学习,只能用周末来抽空看看,但愿你们多多支持,若是你也对Go语言感兴趣,不妨点击下关注,一块儿学习。
相关文章
相关标签/搜索