美文网首页
Go 控制流

Go 控制流

作者: 楼上那位 | 来源:发表于2017-04-25 22:48 被阅读13次

if

if x:= computer(); x> 10 {

} else {

}

goto

func myFunc() {
        i := 0
    Here:   //这行的第一个词,以冒号结束作为标签
        println(i)
        i++
        goto Here   //跳转到Here去
    }

for

  sun:= 0;
 for index:= 0; index <10; index ++ {
   sum ++
}

switch

i := 0;
switch i {

case 1:

case 2,3,4:

}

函数 func

func add(a int) (int) {
   a=a+1 
return a;
}
// 一般传递的是值得copy
如果传递指针
func add(a *int) int {

 *a = *a +1;
return *a
}

defer

你可以在函数中添加多个defer语句。当函数执行到最后时,这些defer语句会按照逆序执行,最后该函数返回

func ReadWrite () bool {
 file.Open ("file")
if failureX {
file.Close()
return false
}

if failureY {
 file.Close()
return false
}
file.Close()
return true
}
// 以上是不是很繁琐

func ReadWrite() bool {

file.Open("file")
defer file.Close()
if failureX{
 return false
}
...
return true
}

函数作为值,类型

在Go中函数也是一种变量,我们可以通过type来定义它,它的类型就是所有拥有相同的参数相同的返回值的一种类型

type typeName func(input1 inputType1 , input2 inputType2 [, ...]) (result1 resultType1 [, ...])

type testInt func(int) bool // 声明了一个函数类型

struct

   package main

    import "fmt"

    type Human struct {
        name string
        age int
        weight int
    }

    type Student struct {
        Human  // 匿名字段,那么默认Student就包含了Human的所有字段
        speciality string
    }

    func main() {
        // 我们初始化一个学生
        mark := Student{Human{"Mark", 25, 120}, "Computer Science"}

        // 我们访问相应的字段
        fmt.Println("His name is ", mark.name)
        fmt.Println("His age is ", mark.age)
        fmt.Println("His weight is ", mark.weight)
        fmt.Println("His speciality is ", mark.speciality)
        // 修改对应的备注信息
        mark.speciality = "AI"
        fmt.Println("Mark changed his speciality")
        fmt.Println("His speciality is ", mark.speciality)
        // 修改他的年龄信息
        fmt.Println("Mark become old")
        mark.age = 46
        fmt.Println("His age is", mark.age)
        // 修改他的体重信息
        fmt.Println("Mark is not an athlet anymore")
        mark.weight += 60
        fmt.Println("His weight is", mark.weight)
    }

相关文章

  • Go 控制流

    if goto for switch 函数 func defer 你可以在函数中添加多个defer语句。当函数执行...

  • Go流控制(一)

    相对比java,go的流控制比较精简。if...else... 对初始化语句的支持 switch 输出: swit...

  • golang程序员前景怎么样?Python、Java、go语言的

    Go的很多语言特性借鉴与它的三个祖先:C,Pascal和CSP。Go的语法、数据类型、控制流等继承于C,Go的包、...

  • Golang Defer

    Defer Go的控制流有一些常用的机制:if, for, switch, goto. 它也拥有可以在独立的gor...

  • 2、Go语言的控制流.md

    在学习到 Go 的控制流的时候,会发现分支判断和循环相对较少,循环只有 for 循环,没有其他语言那些 while...

  • Go语言基础之流程控制

    流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”。 Go语言中最常用的流...

  • 9.控制流(theControlFlow)

    控制流 kotlin_控制流 swift控制流

  • GO语言基础(七)-流程和函数

    流程控制 Go中流程控制分三大类:条件判断,循环控制和无条件跳转。 if Go的if条件判断语句中不需要括号 Go...

  • Python | 常用的控制流语句

    一、控制流语句介绍 了解什么是控制流语句以及Python常用的两种控制流语句。 1.控制流语句 控制流语句即用来实...

  • Go 1.13设置代理

    在Go 1.13中,我们可以通过GOPROXY来控制代理,以及通过GOPRIVATE控制私有库不走代理。 设置GO...

网友评论

      本文标题:Go 控制流

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