当前位置:必发365电子游戏 > 操作系统 > 必发365电子游戏golang第黄金时代篇
必发365电子游戏golang第黄金时代篇
2019-12-19

必发365电子游戏 1

介绍

Go是Google支出的后生可畏种编译型,可平行化,并具备垃圾回笼作用的编制程序语言。

罗布·派克(罗布Pike),罗Bert·格瑞史莫(RobertGriesemer),及肯·汤普逊(unix的成立者)于二〇〇五年2月尾步规划Go语言,稍后IanLance Taylor, RussCox出席项目中。Go语言是依附Inferno操作系统所付出的。Go语言于二零一零年一月行业内部揭露推出,成为开放源代码项目,并在Linux及Mac OS X平台上海展览中心开了完结,后增添Windows系统下的完成。

 

描述

Go语言的语法附近C语言,不过对于变量的扬言是不相同的,其余语法差异之处是For循环必发365电子游戏,和if判别语句卡塔尔(英语:State of Qatar)无需用小括号括起来。Go语言扶助垃圾堆回笼成效卡塔尔国。Go语言的相互模型是以东尼·霍尔的通信顺序进度(CSP)为底子,选用相似模型的别的语言满含Occam和Limbo,但它也不无Pi运算的性状,比方通道传输。

与C++比较,Go语言并不饱含如老大管理、继承)、泛型、断言)、虚函数等成效,但净增了slice型、并发、路子、垃圾回笼、接口(interface)等天性的语言级援助。当然,谷歌对于泛型的姿态照旧很开放的,但在该语言的科学普及难题列表中,对于断言的留存,则持消极的一面态度,同偶尔候也为温馨不提供品类继承来批驳。差异于Java,Go语言内嵌了涉嫌数组)(也称为哈希表(hashes)或字典(dictionaries)),仿佛字符串类型同样。

 必发365电子游戏 2

go语言已经有了广大的优良项目,近些日子后流行的docker便是用golang编写的。推荐二个链接明白越来越多

 

设置配备

下载

 

情形变量

GOROOT

PATH win32:  %GOROOT%/bin

         linux:     $GOROOT/bin

GOPATH以linux景况为例

export GOPATH=$HOME/WorkSpace/go      # WorkSpace是自己刻意贮存代码的目录
export PATH=$PATH:$GOPATH/bin

 

 

推荐介绍编辑器vim

  windows环境:

  下载安装好vim编辑器后,在编写自个儿的~/.vimrc,设置syntax on;

  下载vim插件文件,(以vim7.4为例)复制到vim74/syntax/下,里面有过多*.vim文件,重新展开vim就可以以预知效。

  必发365电子游戏 3

  linux下安装插件应该轻松,这里不再赘述。

 

推荐IDE: LiteIDE

必发365电子游戏 4

 

次第示例

HelloWorld必发365电子游戏golang第黄金时代篇。!

package main

import "fmt"

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

  

goroutine四线程并行

// goroutine project main.go
package main

import (
    "fmt"
)

func f(from string){
    for i := 0;i<3;i++{
        fmt.Println(from,":",i)
    }
}

func main() {
    f("direct")

    go f("goroutine")

    go func(msg string){
        fmt.Println(msg)
    }("going")

    var input string
    fmt.Scanln(&input)
    fmt.Println("done")
}

运营结果:

必发365电子游戏 5

 

golang调用系统命令echo helloworld

package main

import (
    "fmt"
    "os/exec"
    "sync"
    "strings"
)

func exe_cmd(cmd string, wg *sync.WaitGroup) {
    fmt.Println(cmd)
            parts := strings.Fields(cmd)
    out, err := exec.Command(parts[0],parts[1]).Output()
    if err != nil {
        fmt.Println("error occured")
        fmt.Printf("%s", err)
    }
    fmt.Printf("%s", out)
    wg.Done()
}

func main() {
    wg := new(sync.WaitGroup)
    commands := []string{"echo HelloWorld"}
    for _, str := range commands {
        wg.Add(1)
        go exe_cmd(str, wg)
    }
    wg.Wait()
}

  必发365电子游戏 6

 

下一篇:没有了