GO语言

go语言

##

用终端运行go

➜  ~ git:(master) ✗ cd /Users/tianzi/Desktop/时间复杂度 
➜  时间复杂度 git:(master) ✗ cd go 
进入go文件夹
➜  go git:(master) ✗ go run hi.go        
Hello World!
➜  go git:(master) ✗ go run go.go 
package main: 
go.go:4:1: illegal character U+00A0
go.go:4:3: illegal character U+00A0
go.go:4:5: illegal character U+00A0
走了。go:4:5:非法字符U+00A0


hi.go

package main
import (
    "fmt"
)

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

mac搭建go环境

特色下载
https://golang.google.cn/dl/
Mac 可直接下载pkg一键安装

windows主要配置以下几个:

GOROOT:Go 安装后的根目录(例如:D:\Go),安装过程中会由安装程序自动写入系统环境变量中。
GOBIN:Go 的二进制文件存放目录(%GOROOT%\bin)
PATH:需要将 %GOBIN% 加在 PATH 变量的最后,方便在命令行下运行。

GOPATH 工作空间是一个目录层次结构,其根目录包含三个子目录:

src:包含 Go 源文件,注意:你自己创建依赖的package,也要放到GOPATH 目录下,这样才能够被引用到。
pkg:包含包对象,编译好的库文件
bin:包含可执行命令

go 编辑器Goland
  (一个强大的go编辑器,推荐使用)
Goland下载地址 https://www.jetbrains.com/

配置环境变量:GOPATH和GOBIN

(1)打开终端,cd ~
(2)查看是否有.bash_profile文件:ls -all
(3)没有.bash_profile文件,则需要创建:touch .bash_profile

➜  ~ git:(master) ✗ go version
go version go1.13 darwin/amd64
➜  ~ git:(master) ✗ open ~/.bash_profile
(4)打开.bash_profile文件
(5)自定义GOPATH和GOBIN:
export GOPATH=/Users/clude/Documents/gostudy/go_learning
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

➜  ~ git:(master) ✗ source: ~/.bash_profile
zsh: command not found: source:
(6)编译.bash_profile文件:source: ~/.bash_profile
➜  ~ git:(master) ✗ go env
GO111MODULE=""
GOARCH="amd64"



终端进行交互的操作go与终端进行操作

tt.cpp文件

include <iostream>
using namespace std;
int main()
{
    string ch;
    while(1)
    {
        cout<<"please input:";
        cin>>ch;
        cout<<ch<<endl;
    }
    return 0;
}

编译g++ tt.cpp -o tt
这个没用
输入命令 go run test.go 就可以执行看到输出效果


go.go文件

package main

import (
        "log"
        "os"
        "os/exec"
        "time"

        expect "github.com/Netflix/go-expect"
)

func main() {
        c, err := expect.NewConsole(expect.WithStdout(os.Stdout))
        if err != nil {
                log.Fatal(err)
        }
        defer c.Close()

        cmd := exec.Command("./tt")
        cmd.Stdin = c.Tty()
        cmd.Stdout = c.Tty()
        cmd.Stderr = c.Tty()

        go func() {
                c.ExpectEOF()
        }()

        err = cmd.Start()
        if err != nil {
                log.Fatal(err)
        }

        time.Sleep(time.Second)
        c.Send("Hello\r")
        time.Sleep(time.Second)
        c.Send("world\r")

        err = cmd.Wait()
        if err != nil {
                log.Fatal(err)
        }
}


打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦