1. 什么是go语言

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态 、强类型、编译型语言 。Go 语言语法与 C相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。

-----------百度百科

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

Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。

它是编译型语言。

它考虑了多核计算机的执行特点。(并行编程)

特点

  1. 简单易学习
  2. 开发效率高
  3. 执行效率好(号称21世纪的C语言)

兼具效率、性能、安全、健壮等特性

应用领域

  1. 服务端开发:日志处理、文件系统、监控服务
  2. 容器虚拟化:Docker、k8s、Docker Swarm
  3. 存储:etcd、TiDB、GroupCache
  4. Web开发:http/net、Gin、Echo
  5. 区块链:以太坊、fabric
  6. 云平台,目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监自己出来搞的apcera云平台。

成功的案例

  • nsq:bitly开源的消息队列系统,性能非常高,目前他们每天处理数十亿条的消息
  • docker:基于lxc的一个虚拟打包工具,能够实现PAAS平台的组建。
  • packer:用来生成不同平台的镜像文件,例如VM、vbox、AWS等,作者是vagrant的作者
  • skynet:分布式调度框架
  • Doozer:分布式同步工具,类似ZooKeeper
  • Heka:mazila开源的日志处理系统
  • cbfs:couchbase开源的分布式文件系统
  • tsuru:开源的PAAS平台,和SAE实现的功能一模一样
  • groupcache:memcahe作者写的用于Google下载系统的缓存系统
  • god:类似redis的缓存系统,但是支持分布式和扩展性
  • gor:网络流量抓包和重放工具

语言环境安装

在线下载:https://golang.org/dl/

配置go环境变量;你机器上go的安装的目录

cmd输入go version查看版本

Go语言的Hello World

创建一个go语言的工作空间,并添加到环境变量

新建src、pkg、bin三个目录

在src目录下新建demo.go文件

package main

import "fmt"

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

在该文件夹打开cmd 执行go demo.go

编译

输入dir查看目录文件

会发现多了一个exe可执行文件,文件默认的名称是当前文件夹的名称

我们可以指定可执行文件名称编译

跨平台编译

默认我们go build的可执行文件都是当前操作系统可执行的文件,如果需要编译其他平台的go可执行文件,需要先指定平台再编译

SET CGO_ENABLED=0  // 禁用CGO,cgo不支持跨平台
SET GOOS=linux // 目标平台是linux
SET GOARCH=amd64 // 目标处理器架构是amd64

使用sublime打开可以发现是一个二进制文件,拷贝到linux上即可执行

(在执行之前需要查看文件是否有执行权限,不然需要授权)

Go语言项目目录结构

开发工具(IDE)

免费的VS Code(安装go插件)

收费的Goland

vim

等等...

最后

让我们开启Go修仙之旅吧!

从零搭建Golang开发环境--go修仙序章的更多相关文章

  1. Windows下visual studio code搭建golang开发环境

    Windows下visual studio code搭建golang开发环境 序幕 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装 ...

  2. 初探webpack之从零搭建Vue开发环境

    初探webpack之搭建Vue开发环境 平时我们可以用vue-cli很方便地搭建Vue的开发环境,vue-cli确实是个好东西,让我们不需要关心webpack等一些繁杂的配置,然后直接开始写业务代码, ...

  3. Sublime Text 3 搭建 Golang 开发环境

    安装Golang go语言主页: https://golang.org/ go语言安装下载: https://golang.org/dl 环境变量设置: GOROOT: GOROOT变量设置go安装的 ...

  4. 从零搭建react开发环境

    早在六年前,前端开发已经实现了模块化.工程化开发,既然是模块化工程化开发那就少不了包管理工具,所以我们的第一步就是先从安装nodejs开始(安装nodejs携带JavaScript的包管理工具npm) ...

  5. 走进shiro,构建安全的应用程序---shiro修仙序章

    0. 写在前面 在最近的一个项目当中,我们基于Shiro实现我们系统的认证和授权.借此机会,写几篇博客,总结一下在本次实践当中遇到的问题,和较全面地学习一下Shiro的知识点, 1. 权限管理 权限管 ...

  6. 搭建Golang开发环境

    Go语言是谷歌 2009 年首次推出并在 2012 年正式发布的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性.谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 ...

  7. 从零搭建Vue开发环境

    参考: 1.node安装和环境配置:https://www.cnblogs.com/zhouyu2017/p/6485265.html: 2.babel的安装:https://www.cnblogs. ...

  8. 搭建golang开发环境(1.14之后版本)

    Go语言1.14版本之后推荐使用go modules管理依赖,也不再需要把代码写在GOPATH目录下. 下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐) ...

  9. [日常] 搭建golang开发环境

    下载目录:https://studygolang.com/dl32位选 go1.10.linux-386.tar.gz64位选 go1.10.linux-amd64.tar.gz uname -a查看 ...

随机推荐

  1. node_第三方包下载文件package.jon详解

    配置原因第三方包的体积过大,不方便团队成员之间共享项目源代码共享时剔除node_modules 快速创建 package.json(只能在英文的目录下成功运行) npm init -y npm i 一 ...

  2. linux 下切换Python版本(某用户,共存,替换)

    当你安装 Debian Linux 时,安装过程有可能同时为你提供多个可用的 Python 版本,因此系统中会存在多个 Python 的可执行二进制文件.你可以按照以下方法使用 ls 命令来查看你的系 ...

  3. 2020最新Servlet+form表单实现文件上传(图片)

    servlet实现文件上传接受 这几天学了一点文件上传,有很多不会,在网查了许多博客,但是最新的没有,都比较久了 因为我是小白,版本更新了,以前的方法自己费了好久才弄懂,写个随笔方便以后查找 代码奉上 ...

  4. webdriver实现简单的窗口切换

    webdriver实现简单的窗口切换,也只能是简单的,因为目前处于学习阶段,复杂的情况现在还没碰到过.之前写过关于一个小demo的总结,就有提到过在新开窗口进行操作的情况,用以下一句就可以搞定了,la ...

  5. JDK15就要来了,你却还不知道JDK8的新特性!

    微信搜「烟雨星空」,白嫖更多好文. 现在 Oracle 官方每隔半年就会出一个 JDK 新版本.按时间来算的话,这个月就要出 JDK15 了.然而,大部分公司还是在使用 JDK7 和 8 . 之前去我 ...

  6. PIoU Loss:倾斜目标检测专用损失函数,公开超难倾斜目标数据集Retail50K | ECCV 2020 Spotlight

    论文提出从IoU指标延伸来的PIoU损失函数,能够有效地提高倾斜目标检测场景下的旋转角度预测和IoU效果,对anchor-based方法和anchor-free方法均适用.另外论文提供了Retail5 ...

  7. Vue指令之条件渲染

    1. v-show 根据表达式的真假值,切换元素的 display CSS属性.表达式为false时,p标签被赋予 style="display:none;" <p v-sh ...

  8. UBer面向领域的微服务体系架构实践

    介绍 最近,人们对面向服务的系统架构和微服务系统架构的缺点进行了大量的讨论.尽管仅仅在几年前,由于微服务体系架构提供了许多好处,如独立部署的灵活性.明确的所有权.提高系统稳定性以及更好地分离关注点等, ...

  9. 判断语句 、 while循环 、 for循环

    判断语句 语法结构 if 条件1: 如果条件1为真,执行语句块 elif 条件2: 如果条件2为真,执行语句块 elif 条件3: 如果条件2为真,执行语句块 elif 条件n: 如果条件n为真,执行 ...

  10. 你必须要知道的babel二三事

    1. 什么是babel 本文基于的babel版本是7.11.6,本文所有示例github Babel is a toolchain that is mainly used to convert ECM ...