• Linux系统下Go语言编程环境安装,快速起步!

    二进制包 Linux 下,推荐通过二进制包部署 Go 语言开发环境。首先,从 Go 官网 下载页面 下载二进制包。 下载完毕后,将压缩包解压到家目录的 opt 目录中,以 1.10.3 版本为例: 1 2 $ mkdir -p ~/opt $ tar -xf go1.10.3.linux-amd64.tar.gz -C ~/opt 解压完毕后,我们可以看到这些目录和文件: 1 2 3 $ ls ~/opt/go api bin CONTRIBUTING.md doc lib misc pkg robots.txt test AUTHORS blog CONTRIBUTORS favicon.ico LICENSE PATENTS README.md src VERSION 其中, Go 语言开发工具就位于 bin 目录下。 尝试运行 go 命令: 1 2 $ ~/opt/go/bin/go version go version go1.
    阅读全文
  • Go语言包简介

    每个 Go 程序都是由一些包组成的,程序从 main 包中的 main 函数开始执行。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    package main
    
    import (
        "fmt"
        "math/rand"
    )
    
    
    func main() {
        fmt.Println("My favorite number is", rand.Intn(10))
    }
    

    在这个程序,通过 import 导入两个包, fmtmath/rand (包路径)。

    阅读全文
  • Go语言学习资料

    官方文档

    免费资料

    Go by Example

    Go by Example 是一个 Go 语言 动手实践 教程,提供大量 例子 并附带 注释

    阅读全文
  • Go语言函数入门

    Go 语言中,函数可以接受零或多个参数:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    package main
    
    import "fmt"
    
    func add(x int, y int) int {
        return x + y
    }
    
    func main() {
        fmt.Println(add(43, 13))
    }
    

    在这个例子中, add 函数接受两个 整型int )参数。注意到,类型申明紧跟在参数名之后,这跟其他语言有些区别。

    阅读全文
  • Go语言变量概述

    var 语句 申明declare )变量列表; 跟 函数 参数列表一样,类型在最后指定。

    var 语句的作用域(可见范围)可以是 包级别 或者 函数级别 。 下面这个例子同时包含这两种级别:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    package main
    
    import "fmt"
    
    var c, python, java bool
    
    
    func main() {
        var i int
        fmt.Println(i, c, python, java)
    }
    

    作用域是啥意思呢?

    阅读全文
  • Go语言基本类型

    Go 内置了以下基本类型:

    • 布尔
      • bool
    • 字符串
      • string
    • 整数
      • int int8 int16 int32 int64
      • uint uint8 uint16 uint32 uint64
    • 字节
      • byteuint8 的别名
    • Unicode
      • runeint32 的别名
    • 浮点
      • float32 float64
    • 复数
      • complex64 complex128
    阅读全文
  • Go语言常量定义

    常量( constant )申明与变量一样,只不过换成 const 关键字。常量可以是字符、字符串、布尔,或者数值类型。另外,常量不能使用 := 语法申明。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    
    package main
    
    import "fmt"
    
    const Pi = 3.14
    
    func main() {
        const World = "世界"
        fmt.Println("Hello", World)
        fmt.Println("Happy", Pi, "Day")
    
        const Truth = true
        fmt.Println("Go rules?", Truth)
    }
    
    阅读全文
  • Go语言for循环语句

    Go 语言只有一种循环结构—— for 循环。

    最基本的 for 语句包含 3 部分,以分号 ; 分隔:

    • 初始语句 :在第一次迭代判断之前;
    • 条件语句(表达式) :在每次迭代前求值并判断;
    • 迭代后语句 :在每次迭代后执行;
    1
    2
    3
    
    for 初始语句; 条件语句; 迭代后语句 {
        代码体
    }
    

    当条件表达式求值为 false 时,循环将停止迭代并退出。

    阅读全文
  • Go语言if判断语句

    for 语句 一样, if 语句条件表达式不需要括号包围,但花括号却不能省略。我们来看一个例子:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    package main
    
    import (
        "fmt"
        "math"
    )
    
    func sqrt(x float64) string {
        if x < 0 {
            return sqrt(-x) + "i"
        }
        return fmt.Sprint(math.Sqrt(x))
    }
    
    func main() {
        fmt.Println(sqrt(2), sqrt(-4))
    }
    
    

    sqrt 函数计算平方根,并以字符串形式返回。如果对负数求根(第 9 行),将以虚数形式返回。

    阅读全文
  • Go语言switch语句

    switch 语句也是一种经典控制语句,可以看做是 if-else 语句链的简写。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    package main
    
    import (
        "fmt"
        "runtime"
    )
    
    func main() {
        fmt.Print("Go runs on ")
    
        switch os := runtime.GOOS; os {
            case "darwin":
                fmt.Println("OS X.")
    
            case "linux":
                fmt.Println("Linux.")
    
            default:
                // freebsd, openbsd
                // plan9, windows...
                fmt.Printf("%s.\n", os)
        }
    }
    

    Go 语言 switch 结构跟 CC++JavaJavaScript 以及 PHP 等类似,不同的是,Go 只执行匹配的 case 代码体,不包括下面的。

    阅读全文