一、Go简介

Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。

Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。

Go 语言最主要的特性:

  • 自动垃圾回收
  • 更丰富的内置类型
  • 函数多返回值
  • 错误处理
  • 匿名函数和闭包
  • 类型和接口
  • 并发编程
  • 反射
  • 语言交互性
  • 易于部署

再说说我学习go的原因:

1.性能优越:这是个总所周知的特点,天生具备高并发性。

2.部署方便:一开始我只是想尝尝鲜,然后写了一点点代码,然后发现编译非常简单,同时部署时候就是二进制包(linux)或exe文件(windows),这对于做运维的人来说太方便了。

3.最近在学习kuberneters,其实现也是go语言,所以让我下定了学习go的决心。

二、GO与Python

作为python程序员,我对python当然也在熟悉不过了,总所周知由于GIL所问题导致速度较慢,当然go弥补了这个缺点,由于初学go还不了解,只能从他人之言了解到go与python对比:

https://studygolang.com/articles/3102

http://developer.51cto.com/art/201710/555200.htm

三、开发环境搭建

1.下载包:

安装包下载地址为:https://golang.org/dl/

如果打不开可以使用这个地址:https://golang.google.cn/dl/

各个系统对应的包名:

操作系统 包名
Windows go1.10.windows-amd64.msi
Linux go1.10.linux-amd64.tar.gz
Mac go1.10.darwin-amd64-osx10.8.pkg
FreeBSD go1.10.freebsd-amd64.tar.gz

2.安装

windows

将下载好的包运行,一直点击下一步就行了,安装完成后打开cmd 输入go version如果返回正确的版本代表安装成功。

仅仅安装好msi是不够的,还需要配置一些东西:GOPATH

Go从1.1版本到1.7必须设置这个变量,而且不能和Go的安装目录一样。

这个目录用来存放Go源码,Go的可运行文件,以及相应的编译之后的包文件。

所以这个目录下面有三个子目录:src、bin、pkg

从go 1.8开始,GOPATH环境变量现在有一个默认值,如果它没有被设置。 它在Unix上默认为$HOME/go,在Windows上默认为%USERPROFILE%/go

如果你的是Unix(mac/linux)环境需要:

export GOPATH=/opt/src/go

Windows则需要新建一个环境变量名称叫做GOPATH,当然,go 的msi安装包安装完成后,己默认设置了GOPATH,我们只需要右击【此电脑】-【属性】-【高级系统设置】-【高级】-【环境变量】设置编辑就可以了

GOPATH允许多个目录,当有多个目录时,请注意分隔符,多个目录的时候Windows是分号,Linux系统是冒号,当有多个GOPATH时,默认会将go get的内容放在第一个目录下。

以上 $GOPATH 目录约定有三个子目录:

  • src 存放源代码(比如:.go .c .h .s等)
  • pkg 编译后生成的文件(比如:.a)
  • bin 编译后生成的可执行文件(为了方便,可以把此目录加入到 $PATH 变量中,如果有多个gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目录)

UNIX/Linux/Mac OS X, 和 FreeBSD 安装

以下介绍了在UNIX/Linux/Mac OS X, 和 FreeBSD系统下使用源码安装方法:

1、下载源码包:go1.103.linux-amd64.tar.gz。

2、将下载的源码包解压至 /usr/local目录。

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

3、将 /usr/local/go/bin 目录添加至PATH环境变量:

export PATH=$PATH:/usr/local/go/bin

ps:max下如果你安装了brew,你还可以通过brew进行安装

brew install go

或者

brew install golang
四、开始hello world

在你的上文的GOPATH下新建一个文件src/hello/hello.go,内容如下:

package main

import "fmt"

func main() {
fmt.Println("Hello, World!")
}

切入到cmd使用go run 运行该文件

你也可以编译成可执行文件执行:

cmd下进入到文件所在目录,我的目录是C:\Users\17647\Desktop\go_work\src\hello,运行go build:

此时会你会发现目录多了.exe文件直接运行就可以了

go语言之行--简介与环境搭建的更多相关文章

  1. Golang (Go语言) Mac OS X下环境搭建 环境变量配置 开发工具配置 Sublime Text 2 【转】

    一.安装Golang的SDK 在官网 http://golang.org/ 直接下载安装包安装即可.下载pkg格式的最新安装包,直接双击运行,一路按照提示操作即可完成安装. 安装完成后,打开终端,输入 ...

  2. Redis入门很简单之一【简介与环境搭建】

    Redis入门很简单之一[简介与环境搭建] 博客分类: NoSQL/Redis/MongoDB redisnosqlmemcached缓存中间件  [Redis简介] <一>. NoSQL ...

  3. 简介及环境搭建跑通Hello

    简介及环境搭建跑通Hello Spring Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.是为了解决企业应用程序开 ...

  4. PyQT5速成教程-1 简介与环境搭建

    本文由 沈庆阳 所有,转载请与作者取得联系! PyQt简介 一个良好的界面是人机交互中十分重要的一环. Python作为脚本语言,起初并未拥有GUI开发的部分.但随着其开放的扩展性,使得Python不 ...

  5. Mybatis简介、环境搭建和详解

    简介: 1.Mybatis  开源免费框架,原名叫iBatis,2010在google code,2013年迁移到github 2.作用: 数据访问层框架 2.1  底层是对JDBC的封装 3.myb ...

  6. 01 Python简介、环境搭建及包管理(一)

    一.Python简介 1. Python的特点: 是一门动态.解释型.强类型语言 动态:在运行期间才做数据检查(不用提前声明变量)- 静态语音(C/Java):编译时检查数据类型(编码时需要声明变量类 ...

  7. Monkey简介及环境搭建(1)

    简介:Monkey是Android SDK自带的测试工具,是一个命令行工具,可以运行在模拟器中或者实际设备中,它向系统发送伪随机的用户事件流(如按键输入,触摸屏输入,手势输入等),实现对正在开发的应用 ...

  8. Golang/Go语言/Go IDE/Go windows环境搭建/Go自动提示编译器/GoSublime

    Go是Google开发的一种编译型,并发型,并具有垃圾回收功能的编程语言. 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go ...

  9. Go语言学习之介绍与环境搭建

    Go语言第一课 一.Go语言介绍 1.什么是Go语言? Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pik ...

随机推荐

  1. jQuery操作table数据上移、下移和置顶

    jQuery 操作table中的tr换行的步骤如下: 1.获取当前tr var $tr = $(this).parents("tr"); 2.移动tr //上移 $tr.prev( ...

  2. C#与java中的AES加解密互解算法

    一.C#版AES加解密算法 public class AESCode { public string Key { get; set; } public string Encrypt(string va ...

  3. [Linux]《鸟哥的私房菜》笔记 (缓慢更新)

    暂时不更新了..这几天一看起书来发现内容很多,这样写blog太慢,也没意义.所以现在是每天看书,在笔记本上记笔记,再配合着<操作系统>和 linux内核 加深理解.往后会以心得体会为主写一 ...

  4. ConstraintLayout (约束布局)属性详情

    本文部分内容来自于网络,点击浏览原文 app:layout_constraintLeft_toLeftOf //Constrains the left side of a child to the l ...

  5. 【three.js练习程序】拖动选中的物体

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. textbox只允许输入数字

    private void txtUserId_KeyPress(object sender, KeyPressEventArgs e) { //如果输入的不是数字键,也不是回车键.Backspace键 ...

  7. python自学——列表

    #以下是我自己在联系列表中所编写的语句:names=["zangsan",'lisi','wangermazi','Xiaoliuzi','dabiaoge','牛erbiaodi ...

  8. 插入图片新方式:data:image

    我们在使用<img>标签和给元素添加背景图片时,不一定要使用外部的图片地址,也可以直接把图片数据定义在页面上.对于一些“小”的数据,可以在网页中直接嵌入,而不是从外部文件载入. 如何使用 ...

  9. 【转】Java学习---10个测试框架介绍

    [原文]https://www.toutiao.com/i6594302925458113027/ JAVA 程序员需要用到 10 个测试框架和库 Java 程序员需要用到十大单元测试和自动化集成测试 ...

  10. PHP类继承、接口继承关系概述

    PHP类继承: PHP类不支持多继承,也就是子类只能继承一个父类,但是支持多层次继承,比如: class frist{ public function __construct(){ echo &quo ...