• GO语言基础


    Go语言开发

    一、Linux下搭建Go开发环境

    首先下载Go语言的开发安装包,不管是在官方网站或者国内的Golang镜像都是可以的,注意区分64位和32位的安装包。

    1. 下载完安装包之后tar zxvf进行解压。
    2. 利用命令mv go /usr/src/go,把解压后的go目录移动到执行的目录。这样就在/usr/src/go中存放了go语言开发需要的各种部分。
    3. ~/.bashr文件中增加一些环境变量:
    export GOPATH=~/Applications/Go
    export GOROOT=/usr/src/go
    export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
    
    
    1. 然后source ~/.bashr,加载bash设置,使之生效。
    2. 新建上面的各种需要的目录结构:


    至此,GO语言的开发环境就搭建完成了。

    二、第一个GO语言程序

    进入到之前建立好的src目录中,新建目录结构hello,然后在hello目录中新建main.go

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

    然后在命令行中,通过命令go run main.go来运行这个go语言程序。或者可以先通过go build先生成可执行程序,然后再运行。

    如果在go build时,指定某个go文件,那么仅仅构建这一个模块,生成的名字与该go文件的名字相同。
    如果不指定构建的模块,则构建整个工程,生成的名字与工程目录相同。

    三、GO语言变量的声明、初始化、赋值

    变量相当于是对一块数据存储空间进行命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量来使用这块存储空间。

    GO语言变量的声明:

    var v1 int 
    var v2 string
    var v3 [10]int
    var v4 []int
    var v5 struct {
        f int 
    }
    var v6 *int
    var v7 map[string]int
    var v8 func(a int) int 
    var (
        v1 int 
        va string
    )
    

    GO语言变量的初始化:
    对于声明变量的同时需要初始化的场景,var关键字可有可无:

    var v1 int = 10
    var v1 = 10                                                                                                                                                                            
    v1 := 10
    

    对于第三种方式,不能声明全局变量
    表示同时进行变量的声明和初始化
    定义在:=左侧的变量,不能是已经被声明过的变量

    总结:

    GO语言的声明用关键字var 变量名 类型
    GO语言赋值,不是用关键字也不使用类型
    GO语言声明同时初始化,用上面三种方式,不能使用v1 = 10,因为它表示赋值,不表示变量的声明+初始化

    GO语言的声明方式不会混淆。
    GO语言变量的初始化和变量赋值是不同的概念,注意区分。

    四、GO语言的条件控制语句

    package main
    import "fmt"
                
    func main() {
        a := 3
        b := 2                                                                                                                                                                             
                
        if a, c := 2, 5; a < b &&
            b == 2 { 
            fmt.Println("a<b")
            fmt.Println(a)
            fmt.Println(c)
        }else {
            fmt.Println("a>b")
            fmt.Println(a)
            fmt.Println(c)
        }       
        fmt.Println(a)
    }  
    /*
    output:
    a>b
    2
    5
    3
    */
    

    在GO语言的条件语句中,可以有一次变量的赋值或者声明初始化语句,之后分号结束。
    if-else if-else语句块中,其中的变量属于同一作用域,出了该作用域其内定义的变量将失效。

    五、GO语言的循环语句

    GO语言循环中只支持for关键字,基本用法与C和C++中非常接近:

    sum := 0
    for i := 0; i < 10; i++ {
        sum += i
    } 
    

    for后面的条件表达式不需要用括号包起来,GO语言还支持for 语言的无线循环场景:

    for {     
        sum++ 
        if sum > 100 {
            break
        }
    }
    

    for的条件表达式中支持多重赋值:

    a := []int{1, 2, 3, 4, 5, 6}
    for i, j := 0, len(a) - 1; i < j; i, j = i + 1, j - 1 { 
        a[i], a[j] =  a[j], a[i]
    }
    

    GO语言不支持在循环条件中以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量。
    GO语言的for循环同样支持continue和break来控制循环,但是它提供一个更高级的break,可以选择中断哪一个循环。

  • 相关阅读:
    无向图判断三元环
    POJ 2785 4 Values whose Sum is 0
    lower_bound和upper_bound
    2153: 2018湖南多校第二场-20180407(网络同步赛)
    前缀和、前缀积
    hdu 4686 Arc of Dream
    UVA Recurrences 矩阵相乘+快速幂
    UVA 11149 Power of Matrix 构造矩阵
    poj 1258 Agri-Net prim模板 prim与dijkstra的区别
    poj 1182 食物链 (并查集)
  • 原文地址:https://www.cnblogs.com/stemon/p/6081458.html
Copyright © 2020-2023  润新知