经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Go语言 » 查看文章
Go学习笔记01
来源:cnblogs  作者:ShawnHao  时间:2018/9/25 20:30:50  对本文有异议

前言

Go(Golang)是Google开发的一种强静态类型、编译型、并发型,并具有垃圾回收功能的编程语言,所以使用Go编写的程序相比nodejs之类的弱类型语言,可以提前在编译阶段发现错误,而且由于没有类似JVM运行时,所以编译后的程序不是中间语言而是机器代码。总之,它类似c/c++拥有接近它们的性能,但又没有它们烦人的内存管理,重要的是在并发多线程方面处理的非常优雅,特别适合高并发和对性能有要求的场景下开发。好了,闲话少说,接下来看看如何安装Go。

1. Go的安装:Linux 和 Mac

Go的开发环境支持主流的操作系统,如:FreeBSD 10.3 or later(amd64, 386),Linux 2.6.23 or later with glibc(amd64, 386, arm, arm64,s390x, ppc64le),macOS 10.10 or later(amd64),Windows 7, Server 2008R2 or later(amd64,386)。如果你的开发环境就在这些系统中,那么你就可以在官网下载安装包了,假如不是也没事,可以直接获取源码自己编译安装,不过本文不回介绍相关的内容。由于windows上的安装很简单,这里就先略过了,那么重点说说Linux和Mac下如何安装。

Mac环境安装

其实Mac环境下安装也很简单,有几种方式:直接下载安装包,使用Homebrew(包管理)安装。我推荐使用Homebrew,用它就几个简单命令就可以安装了。如果你没有安装Homebrew,请自行Google。在终端下敲入以下命令:

  1. ~ brew install go
  2. installing...

Homebrew的安装操作执行完成后,你就可以在终端上敲入以下命令验证是否成功:

  1. ~ go version
  2. go version go1.10.3 darwin/amd64

哈,是不是很简单,之所以推荐使用Homebrew安装,方便更新管理Go的开发版本。

Linux安装

Linux下安装就麻烦些,首先你需要确认系统的版本:

  1. uname -a
  2. Linux SSS-LA 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u4 (2018-08-21) x86_64 GNU/Linux

那么,根据终端显示的系统版本相关信息,在找到对应的下载链接,点击下载或使用wget命令下载,如下所示:

  1. wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz
  2. --2018-09-01 06:39:53-- https://dl.google.com/go/go1.11.linux-amd64.tar.gz
  3. Resolving dl.google.com (dl.google.com)... 2607:f8b0:4000:801::200e, 172.217.9.174
  4. Connecting to dl.google.com (dl.google.com)|2607:f8b0:4000:801::200e|:443... connected.
  5. HTTP request sent, awaiting response... 200 OK
  6. Length: 127163815 (121M) [application/octet-stream]
  7. Saving to: go1.11.linux-amd64.tar.gz
  8. go1.11.linux-amd64.tar.gz 100%[============================================================================>] 121.27M 98.5MB/s in 1.2s
  9. 2018-09-01 06:39:55 (98.5 MB/s) - go1.11.linux-amd64.tar.gz saved [127163815/127163815]

OK,接着找到下载好的目录,使用tar命令进行解压安装

  1. tar -C /usr/local -xzf go1.11.linux-amd64.tar.gz

一切顺利的话,go就已经安装好了,那么来验证下吧,请输入以下命令:

  1. go version
  2. go version go1.11 linux/amd64

在你的终端上显示如上的类似信息,那么 Go 就已经正确安装到你的机器上了。那是不是可以写个 Hello world 了,take esay,还需要简单的配置几个路径。

2. GOROOT,GOPATH,PATH设置

GOROOT、GOPATH、PATH这三个环境变量需要在profile中设置下,可以在.profile 或 /etc/profile 下添加这几个环境变量

  1. export GOROOT=/usr/local/go
  2. export GOPATH=$HOME/golib
  3. export GOBIN=$HOME/.gobin
  4. export PATH=$PATH:$GOROOT/bin:$GOBIN

GOROOT 表示的是 Go的安装目录

GOPATHGo 代表了工作区,它是 Go 程序源码的存放目录,每一个工作区的目录相同,必须包含三个子目录:src、bin、pkg。
src是存放了源码文件,源码文件是以代码包组织的。pkg是存放的归档文件(名称以.a为后缀的文件),注意归档文件是存放在平台相关的目录下的,平台相关指的是与系统和CPU架构有关。bin用于存放当前工作区中的 Go 程序的可执行文件,但是 GOBIN 设置了,执行 go install 命令后,可执行文件会存放在 GOBIN 对应的目录下

GOBINgo install 命令命令安装执行的目录

PATH 是为了方便 Go 语言命令和 Go 程序的可执行文件进行设置

3.包的导入方式

代码包的导入形式有以下四种:

1) import "strings",这是最常见的,其使用方式为 strings.HasPrefix("Gopher","Go")

2) import str "strings",这是给导入的代码包重新命名,防止与已有的冲突,其实用方式跟上面类似 str.HasPrefix("Gopher","Go")

3) import . "strings",这种方式是将 strings 包可访问的方法、类型等导入到当前的包中,所以就要求当前包内不能有与 strings 内的方法或类型有冲突,其使用方式跟上面完全不同 *HasPrefix("Gopher","Go")

4) import _ "strings",这种方式也是导入,但当前包内不会直接使用该包

4. 代码包初始化

代码包的初始化函数 init ,是在 package block variables 之后才会执行。当一个包有多个 init 函数时,执行顺序是按照文件名的ascii码的加载执行,被导入 packageinit 会先执行,当引入了多个 package 时,执行顺序是按照文件名的ascii码顺序执行,先执行被导入包的全局变量声明表达式,接着执行 init 函数,当执行完所有被导入包的初始化后,最后再执行当前包的初始化过程。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号