golang学习笔记(1):安装&helloworld

安装:

golang编译器安装过程比较简单,也比较快,不同平台下(win/linux/macos)都比较相似;

https://dl.gocn.io/golang/1.9.2/go1.9.2.src.tar.gz  下载对应的系统版本的编译器

go的版本号由"." 分为3部分

如当前的最新版本为1.9.2,那么其中第一个数字代表go的大版本,目前为1.0版本;

第二个数字表示小版本,主要是各种优化与BUG修复,以及一些新的语言特性;

第三个数字表示紧急修复版本;

golang官方承诺大版本号相同的情况下,语法格式不会有变化,而目前没有任何GO2.0的消息,因此当前最新版本会始终保持对低版本的向下兼容,因此始终用最高的版本即可;

安装方式有两种:

·源码编译安装,然后配置环境变量

·直接下载对应操作系统的二进制文件,然后配置环境变量

下面分别介绍

1、源码编译安装

1.5以下的golang编译器需要用gcc编译,而1.5及以上的golang编译器则需要通过golang自身来编译,因此如果当前系统下没有golang编译器,需要先用gcc编译一个低版本(<1.4.x)的golang编译器,然后用这个低版本的 golang编译器进行编译最新版的golang编译器。

具体编译的方式是运行 xxx/go/src/make.bash,其中第二次,也就是用低版本的go编译高版本的go,需要设置一个环境变量:

export GOROOT_BOOTSTRAP=‘低版本go的根路径’,然后再执行make.bash

2、直接下载二进制文件

其实有更简单的办法,那就是直接下载对应操作系统版本的二进制文件,缺点是相对源码安装的方式会比较大。(这种简单粗暴的安装方式也体现出了go的特性与优势,那就是只认内核 ,因此go程序部署非常方便,直接拷贝编译好的二进制文件即可,不需要任何依赖,因此也不存在所谓go环境的说法)

不管用哪种方式安装,最终在go目录下会存在 bin/go 的可执行文件,这就是golang的解释器

执行 bin/go version

如果能打印出上图这样的结果,就表示golang编译器安装成功了~

安装完毕以后还需要配置环境变量,需要配置以下3个环境变量:

· PATH       :  go命令行

· GOROOT :  各种依赖库的路径

· GOPATH  :  工程路径

以linux操作系统为例,可以直接修改~/.bashrc ,配置$GOROOT和GOPATH,并在PATH下追加,示例:

export GOROOT=/home/work/code/go

export GOPATH=/home/work/go

export PATH=$GOROOT/bin:$GOPATH/bin:$PATH

配置完成后别忘了 source ~/.bashrc,然后在命令行执行 go env 看一看相应的配置是否正确,至此,GO的"开发环境"已经搭建完成。



helloworld:

接下来编译、执行第一个golang程序;

在任意路径下创建一个文件 hello.go,编写如下代码:

然后执行 go run hello.go,如果环境配置的没有问题,应该会将这段字符串输出;

go run 命令表示编译并执行;

直接编译的命令是: go build hello.go, 执行它,会在当前路径下生成一个名为 hello 的可执行文件;

因此 go run 可以近似的理解为,按顺序先后执行3个命令:   go build hello.go && ./hello && rm hello;

至此,第一个go程序实现完成



编辑器的配置(linux):

首先了解几个非常实用的工具:

go fmt:        自动格式化代码,这个是自带的

goimports:   自动管理代码中引用的包(自动添加、移除引用),需要手动安装,方法如下:

mkdir -p $GOPATH/src/golang.org/x

git clone https://github.com/golang/tools.git

go install golang.org/x/tools/smd/goimports

linux下开发go程序,可以通过samba连接,然后使用vs code、sublime之类的工具,也可以直接用VIM,下面介绍一下VIM的配置方式 (待续)



TIP:

1、go代码的编译方式由原先的gcc变为go自身,主要的优势在于go对协程的支持比较好,因此采用go编译后支持了并行编译,编译速度大大提升。

2、go简单粗暴的二进制安装 方式也体现出了go的特性与优势,那就是只认内核 ,因此go程序部署非常方便,直接拷贝编译好的二进制文件即可,不需要任何依赖,因此也不存在所谓go环境的说法

3、go跨平台编译的方法: GOOS=xxx(windows/linux/darwin) go build hello.go  如果是在linux下编译成windows,则生成的可执行文件会加.exe后缀,直接拷贝到windows下就可以运行啦~

4、像gcc一样, go build 也可以通过 -o 参数修改编译后可执行文件的名称,如:go build -o test hello.go

时间: 2024-08-01 11:10:28

golang学习笔记(1):安装&helloworld的相关文章

【opengl 学习笔记01】HelloWorld示例

<<OpenGL Programming Guide>>这本书是看了忘,忘了又看,赶脚还是把笔记做一做心里比较踏实,哈哈. 我的主题是,好记性不如烂笔头. ================================================================ 1. 下载glut库 glut库地址为:www.opengl.org/resources/libraries/glut/glutdlls37beta.zip glut全称为:OpenGL Utilit

nodejs学习笔记之安装、入门

由于项目需要,最近开始学习nodejs.在学习过程中,记录一些必要的操作和应该注意的点. 首先是如何安装nodejs环境?(我用的是windows 7环境,所以主要是windows 7的例子.如果想看linux下的安装可以参考http://www.cnblogs.com/meteoric_cry/archive/2013/01/04/2844481.html) 1. nodejs提供了一些安装程序,可以去官网(http://nodejs.org/download/)按照自己的机器进行下载,下载完

node.js在windows下的学习笔记(1)---安装node.js

1.首先打开http://www.nodejs.org/ 2.选择DOWNLOADS,跳转到下面的画面,我的系统是windows7的32位.所以选择.msi的32bit版本. 3.下载后,得到一个5.43MB大小的安装包, 4.运行安装包 点击next 打个勾,点击next 选择安装目录 最后,安装成功啦 node.js在windows下的学习笔记(1)---安装node.js,布布扣,bubuko.com

Hadoop学习笔记(5) ——编写HelloWorld(2)

Hadoop学习笔记(5) ——编写HelloWorld(2) 前面我们写了一个Hadoop程序,并让它跑起来了.但想想不对啊,Hadoop不是有两块功能么,DFS和MapReduce.没错,上一节我们写了一个MapReduce的HelloWorld程序,那这一节,我们就也学一学DFS程序的编写. DFS是什么,之前已经了解过,它是一个分布式文件存储系统.不管是远程或本地的文件系统,其实从接口上讲,应该是一至的,不然很难处理.同时在第2节的最后,我们列出了很多一些DFS的操作命令,仔细看一下,这

[Linux] 学习笔记之安装学习环境(sshd, lrzsz)

紧接前一篇,在VMWare安装完Linux,这个时候我们要使用远程工具连接到虚拟机上去了,以前一直使用Putty,后来到新公司之后,推荐使用SecureCRT,使用之后,觉得效果不错,但是每次连接都失败,linux新手伤不起,在网上搜啊搜,终于找到解决办法.   搜索了很多资料之后,发现是由于我未在Linux上安装ssh服务导致无法使用SecureCRT连接. 1. 可以使用ssh localhost对此进行测试,具体使用如下: 2. 使用apt-get或者yum安装ssh服务,具体哪种操作系统

MongoDB 学习笔记一 安装以及基础命令

一.MongoDB安装配置 1.获取最新版本: wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz 2.解压缩即可执行 tar zxvf mongodb-linux-x86_64-2.0.2.tgz tar zxvf mongodb-linux-x86_64-2.0.2.tgz cd /usr/mongodb-linux-x86_64-2.0.2/bin 但是在运行前,需要创建mongodb需要的存放数据和日志的

python学习笔记1——安装python

python学习笔记1--安装python centos和ubuntu的python2.7的安装方法参考:http://daixuan.blog.51cto.com/5426657/1767325 1.查看当前python版本并且 [[email protected] ~]# python -V Python 2.6.6 2.安装eple-release扩展源 [[email protected] ~]# yum install -y epel-release 3.安装pip [[email p

CentOS学习笔记--Tomcat安装

Tomcat安装 通常情况下我们要配置Tomcat是很容易的一件事情,但是如果您要架设多用户多服务的Java虚拟主机就不那么容易了.其中最大的一个问题就是Tomcat执行权限.普通方式配置的Tomcat是以root超级管理员的身份运行的,显然,这是非常危险的,可想而知,一但网站被挂马,您的整个服务器都可以被黑客控制了.而通过编译或在线(例如redhat系列的yum, debian系列的apt-get)的方式安装,一个服务器上又只能装一个tomcat的服务,如果将多个网站放到同一个tomcat服务

golang学习笔记————字符串

字符串的创建 在golang中 字符串是使用双引号("")包裹住的字符序列: 字符是使用单引号('')包裹住的单一字符: 声明字符串的方式:var strvalue string 声明并创建的方式:strvalue := "This is a string!"; KeyPoint: 一旦字符串变量被初始化后,则不可单独改变该字符串序列中的某一字符:但该字符串变量可以重新被赋值: Ex:   strvalue := "abcd" fmt.Print

[Linux][VMWare] 学习笔记之安装Linux系统-网络配置

最近开始折腾Linux,在本机装了个VMWare和Centos,装完之后虚拟机里面的OS可以上网,但是使用SecureCRT连接不上虚拟机,开始折腾这个网络. vmware安装好以后,会自动添加两张网卡(vmnet1和vmnet8),中间网卡),整个机器的结构就可以抽象成:虚拟机系统(虚拟机网卡vmnet0)--(vmnet1 vmnet8),中间网卡)--实际系统网卡 vmware的网卡设置的几种方式: 1. Bridged(桥接)方式     用这种方式,虚拟系统的IP可设置成与本机系统在同