• golang 笔记


      wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz --no-check-certificate

    export GOROOT=/usr/local/go                    // go安装包的解压路径

    export PATH=$PATH:$GOROOT/bin           //配置go的bin目录.
    export GOPATH=/root/go-demon                      //go的项目目录, 可以自行配置路径      GOPATH和GOROOT不能一样,
    export PATH=$PATH:$GOPATH/bin


    source /etc/profile

    go version     # 验证

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



    package main //import "fmt" 或者下面带() import ( "fmt" ) func main() { fmt.Println("hello") }

      

    go run hello.go 

    关于包,根据本地测试得出以下几点:

    •  文件名与包名没有直接关系,不一定要将文件名与包名定成同一个。
    •  文件夹名与包名没有直接关系,并非需要一致。
    •  同一个文件夹下的文件只能有一个包名,否则编译报错。
    文件结构:
    
    Test
    --helloworld.go
    
    myMath
    --myMath1.go
    --myMath2.go
    测试代码:
    
    // helloworld.go
    package main
    
    import (
    "fmt"
    "./myMath"
    )
    
    func main(){
        fmt.Println("Hello World!")
        fmt.Println(mathClass.Add(1,1))
        fmt.Println(mathClass.Sub(1,1))
    }
    // myMath1.go
    package mathClass
    func Add(x,y int) int {
        return x + y
    }
    // myMath2.go
    package mathClass
    func Sub(x,y int) int {
        return x - y
    }
    

     

    格式化字符串
    Go 语言中使用 fmt.Sprintf 格式化字符串并赋值给新串:
    实例
    
    
    package main
    
    import (
        "fmt"
    )
    
    func main() {
       // %d 表示整型数字,%s 表示字符串
        var stockcode=123
        var enddate="2020-12-31"
        var url="Code=%d&endDate=%s"
        var target_url=fmt.Sprintf(url,stockcode,enddate)
        fmt.Println(target_url)
    }



     go build 命令来生成二进制文件:

    $ go build hello.go 
    $ ls
    hello    hello.go
    $ ./hello 
    Hello, World!




    //类型相同多个变量, 非全局变量var vname1, vname2, vname3 type
    vname1, vname2, vname3 = v1, v2, v3  //这种好像不行 必须加 var
    
    var vname1, vname2, vname3 = v1, v2, v3 // 和 python 很像,不需要显示声明类型,自动推断
    
    vname1, vname2, vname3 := v1, v2, v3 // 出现在 := 左侧的变量不应该是已经被声明过的,否则会导致编译错误         不能写  vname1, vname2, vname3 int := v1, v2, v3 
    // 这种因式分解关键字的写法一般用于声明全局变量var( vname1 v_type1 vname2 v_type2 )

     

    package main//import "fmt"import (    "fmt")func main() {fmt.Println("hello")}

  • 相关阅读:
    RQNOJ 342 最不听话的机器人:网格dp
    RQNOJ 329 刘翔!加油!:01背包
    RQNOJ 57 找啊找啊找GF:01背包
    RQNOJ 202 奥运火炬登珠峰:01背包
    RQNOJ 201 奥运大包围:LIS + 拼链成环
    2017SN多校D1T2 note:dp
    2017SN多校D1T1 loveletter:模拟
    HDU 2157 How many ways??:矩阵快速幂【i到j共经过k个节点的方法数】
    poj 3764 The xor-longest Path
    bzoj 1192 鬼谷子的钱袋
  • 原文地址:https://www.cnblogs.com/hanxing/p/15976898.html
Copyright © 2020-2023  润新知