zoukankan      html  css  js  c++  java
  • script / go / golang

    s

     

    go / golang

    https://baike.baidu.com/item/go/953521

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

    简介编辑 语音
    Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
    罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。 目前,Go每半年发布一个二级版本(即从a.x升级到a.y)。 [2]
    描述编辑 语音
    Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。Go的并行模型是以东尼·霍尔的通信顺序进程(CSP)为基础,采取类似模型的其他语言包括Occam和Limbo,但它也具有Pi运算的特征,比如通道传输。在1.8版本中开放插件(Plugin)的支持,这意味着现在能从Go中动态加载部分函数。
    与C++相比,Go并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了 切片(Slice) 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。Go 2.0版本将支持泛型,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护。
    不同于Java,Go内嵌了关联数组(也称为哈希表(Hashes)或字典(Dictionaries)),就像字符串类型一样。 [2]
    撰写风格编辑 语音
    在Go中有几项规定,当不匹配以下规定时编译将会产生错误。
    每行程序结束后不需要撰写分号(;)。
    大括号({)不能够换行放置。
    if判断式和for循环不需要以小括号包覆起来。
    Go亦有内置gofmt工具,能够自动整理代码多余的空白、变量名称对齐、并将对齐空格转换成Tab。 [2]
    编译器编辑 语音
    当前有两个Go编译器分支,分别为官方编译器gc和gccgo。官方编译器在初期使用C写成,后用Go重写从而实现自举。Gccgo是一个使用标准GCC作为后端的Go编译器。
    官方编译器支持跨平台编译(但不支持CGO),允许将源代码编译为可在目标系统、架构上执行的二进制文件。 [

     
    Linux下安装Go环境

    https://www.cnblogs.com/yiyi20120822/p/11652612.html
    亲测可用,ubuntu18.04,转载自https://www.jianshu.com/p/c43ebab25484
    安装Go环境

    Golang官网下载地址:https://golang.org/dl/

    1. 打开官网下载地址选择对应的系统版本, 复制下载链接
      这里我选择的是
      go1.11.5.linux-amd64.tar.gzhttps://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
     
    image.png
    1. cd进入你用来存放安装包的目录,我习惯在~下面创建个go文件夹。
    # 在 ~ 下创建 go 文件夹,并进入 go 文件夹
    mkdir ~/go && cd ~/go
    下载的 go 压缩包
    wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
    
    1. 下载完成
     
    1. 执行tar解压到/usr/loacl目录下(官方推荐),得到go文件夹等
    tar -C /usr/local -zxvf  go1.11.5.linux-amd64.tar.gz
    
    1. 添加/usr/loacl/go/bin目录到PATH变量中。添加到/etc/profile 或$HOME/.profile都可以
    # 习惯用vim,没有的话可以用命令`sudo apt-get install vim`安装一个
    vim /etc/profile
    # 在最后一行添加
    export GOROOT=/usr/local/go
    export PATH=$PATH:$GOROOT/bin
    # 保存退出后source一下(vim 的使用方法可以自己搜索一下)
    source /etc/profile
    
    1. 执行go version,如果现实版本号,则Go环境安装成功。是不是很简单呢?
       

    运行第一个程序


    1. 先创建你的工作空间(Workspaces),官方建议目录$HOME/go
    mkdir $HOME/go
    
    1. 将你的工作空间路径声明到环境变量中。和上一部分的第5步相似。
    # 编辑 ~/.bash_profile 文件
    vim ~/.bash_profile
    # 在最后一行添加下面这句。$HOME/go 为你工作空间的路径,你也可以换成你喜欢的路径
    export GOPATH=$HOME/go
    # 保存退出后source一下(vim 的使用方法可以自己搜索一下)
    source ~/.bash_profile
    
    1. 在你的工作空间创建你的第一个工程目录
    # 创建并进入你的第一个工程目录
    mkdir -p $GOPATH/src/hello && cd $GOPATH/src/hello
    
    1. 在你的工程目录下创建名为hello.go的文件
    vim hello.go
    
    1. 将下面内容粘贴到 hello.go 文件
    package main
    
    import "fmt"
    
    func main() {
        fmt.Printf("hello, world
    ")
    }
    
    1. 好了,工程目录和工程文件都准备好了。现在我们到我们的工程目录($GOPATH/src/hello)下构建我们的工程
    # 如果你当前的目录不在 $GOPATH/src/hello, 需要先执行 "cd $GOPATH/src/hello" 进入该目录
    # 执行构建工程的命令
    go build
    
    1. 等一会,命令执行完之后你可以看到目录下会多出一个 hello 的文件,这就是我们编译之后的文件啦。怎么执行我们的程序呢?只需要在当前目录下执行./xxx就可以啦!是不是敲鸡煎蛋呢!
    ./hello
    
     

    关于Go的一些介绍


    环境变量:

    • $GOROOT:
      表示Go的安装目录。也就是上面我们解压出来的文件夹里面的go文件夹。
    • $GOPATH:
      表示我们的工作空间。用来存放我们的工程目录的地方。

    GOPATH目录:

    一般来说GOPATH下面会有三个文件夹:binpkgsrc,没有的话自己创建。每个文件夹都有其的作用。

    • bin:编译后可的执行文件的存放路径
    • pkg:编译包时,生成的.a文件的存放路径
    • src:源码路径,一般我们的工程就创建在src下面。

    注意:如果要用Go Mod(Go1.11及以上支持)进行包管理,则需要在 GOPATH 以外的目录创建工程。关于Go Mod的使用,可以自行Google一下,这里就不赘述了。

     

    end

  • 相关阅读:
    python sys.path.append
    python中的map()函数
    python中的map、filter、reduce函数
    上传文件2.0--drp203
    The import org.apache.commons.fileupload cannot be resolved
    让我会好好学习一阵子的东西
    【JSP】--Error错误页设置,声明式异常--188 drp
    【JSP】--重定向,转发--186 drp
    【JSP】--路径问题--如何去掉../,直接写绝对路径
    主备切换,双机热备,负载均衡,nginx
  • 原文地址:https://www.cnblogs.com/lindows/p/14983264.html
Copyright © 2011-2022 走看看