Go语言基础语法

作者: 杨小伟的世界 | 来源:发表于2017-10-01 22:38 被阅读0次

抽空看了一下go,顺便做了个总结。话说go的语法还真感觉有点特别,而且抽象层次更高,对初学者可能障碍更多。还是按照之前的套路,我做了一个简化版的go语言语法小结,仅供参考。

参考资料:

https://gobyexample.com
http://www.runoob.com/go/go-tutorial.html

变量声明定义的三种方式

var a int
a = 10

var a = 10

// 只能用在函数体内
a := 10

数据类型

bool

var b = true

if b {
    fmt.Println("This is true")
}

slice

    /* Format 1 */
    var p = []int{2, 3, 5, 7, 11, 13}
    fmt.Println("p ==", p)
    for i := 0; i < len(p); i++ {
        fmt.Printf("p[%d] == %d\n", i, p[i])
    }

    /* Format 2 */
    var a []int
    if a == nil {
        fmt.Println("nil!")
    }
    a = make([]int, 5, 5)
    a[0] = 1

    /* Format 3 */
    b := make([]int, 0, 5)

map

    type Vertex struct {
        Lat, Long float64
    }

    var m map[string]Vertex
    m = make(map[string]Vertex)
    m["Bell Labs"] = Vertex{
        40.68433, -74.39967,
    }
    m["AT&T Labs"] = Vertex{
        40.68433, -74.39967,
    }
    fmt.Println(m["Bell Labs"])

    v, ok := m["AT&T Labs"]
    if ok {
        fmt.Println(v)
    } else {
        fmt.Println("No such element")
    }

    delete(m, "AT&T Labs")

    v, ok = m["AT&T Labs"]
    if ok {
        fmt.Println(v)
    } else {
        fmt.Println("No such element")
    }

控制语句

for

    var sum int
    sum = 0
    for i := 0; i < 10; i++ {
        sum += i
    }
    fmt.Println(sum)

    sum = 1
    for sum < 1000 {
        sum += sum
    }
    fmt.Println(sum)

    var a [10]int
    for i, val := range a {
        fmt.Printf("Value[%d] %d\n", i, val)
    }

    for _, val := range a {
        fmt.Println("Value ", val)
    }

if

    if age > 18 {
        fmt.Println("Adult")
    } else if age > 3 {
        fmt.Println("Child")
    } else {
        fmt.Println("Elphan")
    }

函数定义

函数

func sum(a int, b int) int {
    return a + b
}

多返回值

func swap(x, y string) (string, string) {
    return y, x
}

a, b = swap("hello", "world")
fmt.Println(a, b)

多返回值2

func concat(x, y string) (int, string) {
    return len(x + y), x + y
}

length, _ = concat("hello ", "world")
fmt.Println(length)

闭包函数

如果对c语言有深入研究,闭包函数其实就是函数+静态变量。

package main

import "fmt"

func fibonacci() func() int {
    /* use -1 to indicate the value is uninitialized */
    gp, p, fib := -1, -1, 0
    return func() int {
        if p == -1 {
            p = 0
            return 0
        } else if gp == -1 {
            p = 1
            gp = 0
            return 1
        }

        fib = gp + p
        gp = p
        p = fib
        return fib
    }
}

func main() {
    f := fibonacci()
    for i := 0; i < 10; i++ {
        fmt.Println(f())
    }
}

方法

type Circle struct {
    radius float64
}

func (c Circle) getArea() float64 {
    return 3.14 * c.radius * c.radius
}

var c1 Circle
c1.radius = 10.0
fmt.Println(c1.getArea())

相关文章

  • Go语言基础语法--注释、基础结构2

    章节 GO语言基础语法--注释、基础结构(重要) 1.GO语言基础语法---注释、基础结构 基础结构注意事项 源文...

  • 初识Go语言-1

    Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常...

  • docker 源码入门

    前言 docker是go语言编写的,要看docker源码,最起码要学会go的基础语法。 了解 docker 基础架...

  • Go语言基础语法

    抽空看了一下go,顺便做了个总结。话说go的语法还真感觉有点特别,而且抽象层次更高,对初学者可能障碍更多。还是按照...

  • Go 语言基础语法

    上一章节我们已经了解了 Go 语言的基本组成结构,本章节我们将学习 Go 语言的基础语法。 -Go 标记 Go 程...

  • Go 语言基础语法

    上一章节我们已经了解了 Go 语言的基本组成结构,本章节我们将学习 Go 语言的基础语法。 Go 标记 Go 程序...

  • Go 语言基础--语法基础

    运算符 同其他语言一样go也有 算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符 这几类,作用也是一致的,...

  • Go语言基础知识(一)

    Go 语言学习的入门部分,如果有C语言的基础类比学习会非常迅速。总结来说 Go语言 和 C语言很相似,语法更为简单...

  • Java转Go后端开发Landing记录

    Java转Go后端开发Landing记录 基础语法 主要看Go 语言教程 | 菜鸟教程[https://www.r...

  • 二、Go 基础语法

    二、Go基础语法 1.Go语言结构 仅声明与其他编程语言不同的点。 第一行代码 package main 定义了包...

网友评论

    本文标题:Go语言基础语法

    本文链接:https://www.haomeiwen.com/subject/cxmoextx.html