Go语言

  Google开源
  编译形语言
  21世纪的C语言

Go语言的特点
  简单易并发
  开发效率高
  执行性能好

Go语言应用的领域
  服务端开发
    日志处理
    文件系统
    监控服务
  容器虚拟化
    Docker
    k8s
    Docker Swarm
  存储
    etcd
    Tidb
    Groupcache
  Web开发
    net/http
    Gin
    Echo
  区块链
    以太坊
    fabric

开发环境
  官网地址:
    https://golang.google.cn/dl/
    选择对应版本 下载 安装
  (我这里是mac 所以使用brew下载)
    brew install go

  完成后使用 go env 查看版本

配置go路径环境
  主要是GOROOT和GOPATH

  GOROOT:就是go的安装环境
  GOPATH:作为编译后二进制的存放目的地和import包时的搜索路径。其实说通俗点就是你的go项目工作目录。通常情况下GOPATH包含三个目录:bin、pkg、src。

  src目录下主要存放go的源文件

  pkg目录存放编译好的库文件,主要是*.a文件;

  bin目录主要存放可执行文件

  注意:千万不要把GOPATH设置成go的安装路径,可以自己在用户目录下创建一个目录,例如mygo

  一般安装好go之后,使用go env查看一下当前环境。此时显示出来的GOROOT就是你使用brew安装go的安装目录,这个路径要记下来。接下来要在bash_profile文件中进行配置。

Golang /Go调试工具delve

  Windows or Linux
    go get github.com/derekparker/delve/cmd/dlv
  Mac使用brew下载
    brew install go-delve/delve/delve

    

IDE下载 Goland
  http://www.jetbrains.com/go/

  下载后激活正常使用

Go语言的项目结构
  -GOPATH
    -src //目录下主要存放go的源文件
      -网站域名/公司级别仓库域名
        - 作者/机构
          - 项目name
            - 模块a
            - 模块b
    -bin // 目录主要存放可执行文件
    -pkg //目录存放编译好的库文件,主要是*.a文件;

  编译: 只需要编辑主文件即可 不需要编译包
    cd /Project/pkg ## 在哪里编译 编译后的文件就在那里
    go build ../src/xxxx/xxx.go

    或指定编译后存放的地址

    go build -o Project/pkg/name src/xxx/xxx.go ## -o 参数指定编译后存放的位置 最后的/name 指的是编译后生成的文件name 也可以不指定

  *** 跨系统编译
    Mac下编译Linux和Windows平台64位可执行程序需要设置
      Linux
        CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build;
      Windows
        CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build;

    Linux下编译Mac和Windows平台64位可执行程序
      Mac
        CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build;
      Windows
        CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build;
    Windows下编译Mac和Linux平台64位可执行程序
      Mac
        SET CGO_ENABLED=0 // 禁用CGO
        SET GOOS=darwin // 目标平台设定
        SET GOARCH=amd64 // 64位系统
        go build
      Linux
        SET CGO_ENABLED=0
        SET GOOS=linux
        SET GOARCH=amd64
        go build

    编译并移动至bin目录
      go install

Go代码结构

package main //导包 main可执行文件 如果更换其他的name则不会执行 会生成一个.a文件供其他程序引入调用
import(
// go所有的功能都靠包的引入
"fmt" // 输出输出模块
)
func main(){ //主函数
  fmt.Println("hello word") // Println 输出至终端
}

运行

  IDE下
    右击Run
  终端下
    cd至创建文件路径下
      go run 文件name.go

Go强语言类型

  创建函数传入参数以及返回值必须要指定类型例如
    # 补充 声明的变量如果不使用会被强制删除

func add(a int, b int // 定义参数类型 ) int //定义返回值类型 {
var sum int // 定义变量类型
sum = a + b
return sum // 返回值
}

语言特性

  1.垃圾回收
    a.内存自动回收,再也不需要开发人员管理内存
    b.开发人员专注业务时间,降低了心智负担
    c.只需要new分配内存,不需要释放
  2.天然并发
    a.从语言层面支持并发,非常简单
    b.goroute,轻量级线程,创建成千上万个goroute成为可能
    c.基于CSP(Commuicating Sequential Process)模型实现

func main(){
  go fmt.Println("hello")
}

  3.channel
    a.管道,类似unix/linux中的pipe
    b.多个goroute之间通过channel进行通讯
    c.支持任何类型

func main(){
pip3:=make(chan int,3) // make开辟空间 长度为3 且只能存int类型
pipe <- 1
pipe <- 2
}

  4.多返回值
    a.一个函数返回多个值

func calc(a int,b int)(int,int){ //(int,int) 定义返回值
sum:= a+ b
avg:= (a+b)/2
return sum,avg
}

  补充: 解包到不需要的参数 使用 "_"接受则为省略
    res,_ = calc(1,3)
    res = 4

  

Golang介绍以及安装的更多相关文章

  1. Golang 介绍与安装

    1.介绍与安装 Golang 是什么 Go 亦称为 Golang(按照 Rob Pike 说法,语言叫做 Go,Golang 只是官方网站的网址),是由谷歌开发的一个开源的编译型的静态语言. Gola ...

  2. Golang学习系列:(一)介绍和安装

    Golang学习系列:(一)介绍和安装 Java程序员带你来到Go的世界,让我们开始探索吧! Go是一种新的语言,一种并发的,带有垃圾回收的.快速编译的语言,它具有一下特点: 他可以在一台计算机上用几 ...

  3. 微服务系列(二)GRPC的介绍与安装

    微服务系列(二)GRPC的介绍与安装 1.GPRC简介 GRPC是Google公司基于Protobuf开发的跨语言的开源RPC框架.GRPC基于HTTP/2协议设计,可以基于一个HTTP/2链接提供多 ...

  4. 从零自学Hadoop(19):HBase介绍及安装

    阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇, ...

  5. 从零自学Hadoop(14):Hive介绍及安装

    阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 本系列已 ...

  6. Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)

    本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 7.python 操作mysql 8.ORM sqlac ...

  7. Bash on Windows 抢鲜测试 -- 介绍及安装

    前言 微软在上周的Windows BUILD大会上宣布,WIN10将引入原生Bash,并将很快在技术预览版中推出. 如此一来,windows的命令行工具就不再只有cmd和powershell了,我们可 ...

  8. Tyk API网关介绍及安装说明

    Tyk API网关介绍及安装说明 Tyk是一个开源的轻量级API网关程序. 什么是API网关 API网关是一个各类不同API的前置服务器.API网关封装了系统内部架构,对外提供统一服务.此外还可以实现 ...

  9. Python介绍、安装、使用

    Python介绍.安装.使用 搬运工:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python语言介绍 说到Python语言,就不得不说一下它的创始人Guido van Rossu ...

随机推荐

  1. 【Python】 注释

    确保对模块, 函数, 方法和行内注释使用正确的风格 Python中的注释有单行注释和多行注释: Python中单行注释以 # 开头,例如:: # 这是一个注释 print("Hello, W ...

  2. springboot08(springmvc自动配置原理)

    MVC WebMvcAutoConfiguration.java @ConditionalOnMissingBean(name = "viewResolver", value = ...

  3. hdu 4289 dinic模板

    题意:有N个城市,现在城市S出现了一伙歹徒,他们想运送一些炸弹到D城市,不过警方已经得到了线报知道他们的事情,不过警察不知道他们所在的具体位置,所以只能采取封锁城市的办法来阻断暴徒,不过封锁城市是需要 ...

  4. 转载UUID.randomUUID()

    UUID.randomUUID()生成唯一识别码 原创 清晨-阳光zx 最后发布于2019-04-11 20:54:40 阅读数 3039 收藏 发布于2019-04-11 20:54:40 分类专栏 ...

  5. Mybatis plus中一个框多条件查询 SQL拼接

    遇到多条件查询时,只用框架自带的方法搞不定,只能自己写方法拼接 EntityWrapper<YcejShopEntity> wrapper = new EntityWrapper<& ...

  6. CGMH:Constrained Sentence Generation by Metropolis-Hastings Sampling解读

    根据关键字生成句子: 读进关键字,随机选择处理手段(增删改)以及待处理word的位置,然后计算接受/拒绝概率,根据概率生成一个新的序列,再循环这一过程,循环次数是500,每次都将困惑度最低的生成句子放 ...

  7. 【PAT甲级】1106 Lowest Price in Supply Chain (25分)

    题意:输入一个正整数N(<=1e5),两个小数P和R,分别表示树的结点个数和商品原价以及每下探一层会涨幅的百分比.输出叶子结点深度最小的商品价格和深度最小的叶子结点个数. trick: 测试点1 ...

  8. 【12】(难&精)【DFS】矩阵中的路径

    题目 矩阵中的路径 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左.右.上.下移动一格.如果一条路径经过了矩阵的某一 ...

  9. jumpserver sudo 权限控制模板

    sudo 权限控制,常用 ALL,!/bin/bash,!/bin/tcsh,!/bin/su,!/usr/bin/passwd,!/usr/bin/passwd root,!/bin/vim /et ...

  10. Hadoop3.1.1源码Client详解 : Packet入队后消息系统运作之DataStreamer(Packet发送) : 主干

    该系列总览: Hadoop3.1.1架构体系——设计原理阐述与Client源码图文详解 : 总览 在上一章(Hadoop3.1.1源码Client详解 : 写入准备-RPC调用与流的建立) 我们提到, ...