zoukankan      html  css  js  c++  java
  • golang(01) linux环境搭建和编码

    1 在自己的工作目录下建立一个goproject文件夹

    /home/secondtonone/goproject

    2 在文件夹下建立如下三个文件

    bin pkg src
    bin 保存执行go install 源码目录后生成的可执行文件
    pkg 文件夹是存在go编译生成的文件
    src存放的是我们的go源代码,不同工程项目的代码以包名区分

    3 安装go

    去国内的网站下载https://studygolang.com/dl 根据不同的平台选择对应的安装包
    然后将压缩包解压到 /usr/local/
    sudo tar -C /usr/local/ -xzvf go1.10.2.linux-amd64.tar.gz

    4 配置环境变量

    可以配置/etc/profile对所有用户起作用,也可以配置~/.profile 只对当前用户起作用
    我配置~/.profile
    vim ~/.profile打开后,添加如下代码

    export GOROOT=/usr/local/go
    export GOPATH=/home/secondtonone/goProject 
    export GOBIN=$GOPATH/bin
    export PATH=$PATH:$GOROOT/bin
    export PATH=$PATH:$GOPATH/bin
    

      

    保存后执行 source ~/.profile 刷新下配置 

    执行go version 可以看到配置好了go版本
    简单说下上述配置
    GOROOT表示你golang的安装目录
    GOPATH 表示 你工程的路径
    GOBIN目录是执行 go install 后生成可执行文件的目录
    然后将两个路径导入到PATH中。

    5 编写代码测试

    在goProject下src文件夹里,创建两个文件夹,分别是calcsrc和simplemath,在calcsrc中创建calc.go文件,源码如下

    package main
    import "os"// 用于获得命令行参数os.Args
    import "fmt"
    import "simplemath"
    import "strconv"
    var Usage = func() {
        fmt.Println("USAGE: calc command [arguments] ...")
        fmt.Println("
    The commands are:
    	add	Addition of two values.
    	sqrt	Square root of a non-negative value.")
    }
    func main() {
        args := os.Args
        if args == nil || len(args) < 2 {
            Usage()
            return
        }
        switch args[1] {
            case "add":
                if len(args) != 4 {
                    fmt.Println("USAGE: calc add <integer1><integer2>")
                    return
                }
                v1, err1 := strconv.Atoi(args[2])
                v2, err2 := strconv.Atoi(args[3])
                if err1 != nil || err2 != nil {
                    fmt.Println("USAGE: calc add <integer1><integer2>")
                    return
                }
                ret := simplemath.Add(v1, v2)
                fmt.Println("Result: ", ret)
            case "sqrt":
                if len(args) != 3 {
                    fmt.Println("USAGE: calc sqrt <integer>")
                    return
                }
                v, err := strconv.Atoi(args[2])
                if err != nil {
                    fmt.Println("USAGE: calc sqrt <integer>")
                    return
                }
                ret := simplemath.Sqrt(v)
                fmt.Println("Result: ", ret)
            default:
                Usage()
        }
    }

     在simplemath下分别创建 如下add.go和sqrt.go

    add.go

    package simplemath
    func Add(a int, b int) int {
    	return a + b
    }
    

     sqrt.go

    package simplemath
    import "math"
    func Sqrt(i int) int {
    	v := math.Sqrt(float64(i))
    	return int(v)
    }
    

    6 编译并运行程序 

    可以在/home/secondtonone/goproject/src/calcsrc文件夹下执行go build calc.go,
    该文件夹下生成calc可执行文件,然后运行./calc add 2 3 可以看到结果
    也可以在/home/secondtonone/goproject/src 下执行go install calcsrc,
    在/home/secondtonone/goproject/bin下生成 calc可执行程序
    然后运行./calc add 3 2 也可以看到结果

    项目下载https://github.com/secondtonone1/golang-

    到此为止环境搭建和基本的demo写完了,后续会不断更新golang学习笔记
    谢谢关注我的公众号
    wxgzh.jpg

  • 相关阅读:
    Linux下链接数据库图形化工具
    基于深度学习的中文语音识别系统框架(pluse)
    Centos配置深度学习开发环境
    aishell数据处理为thchs30格式
    GRU-CTC中文语音识别
    深度学习知识树,别处传过来,用于自己知识整理。
    kaldi HMM-GMM全部训练脚本分解
    使用深度学习来破解 captcha 验证码(转)
    kaldi
    神经网络最优化方法
  • 原文地址:https://www.cnblogs.com/secondtonone1/p/10565376.html
Copyright © 2011-2022 走看看