go语言流程和函数(五)

流程控制

  • if语句

go语言的if语句不需要括号,go语言的if还可以在条件判断的地方声明变量,go语言中的goto语句和c语言中的用法一样

func main() {
    var x int = 10

    //go 语言的if不需要括号
    if x > 10 {
        fmt.Println("x is greater than 10")
    } else {
        fmt.Println("x is less than 10")
    }

    //go 语言的条件判断的地方可以声明一个变量
    if y := 100; y > 100 {
        fmt.Println("y is greater than 100")
    } else {
        fmt.Println("y is less than 100")
    }

    //多语句
    if x > 10 {
        fmt.Println("x is greater than 10")
    } else if x == 10 {
        fmt.Println("x is 10")
    } else {
        fmt.Println("x is less than 10")
    }

    //go 语言中的goto语句与c语言中的使用方法相同
}
  • for循环

go语言中的for和c语言类似, break 和continue在这里也同样适用

func main() {
    //go 语言的for和c语言的类似
    for i := 0; i < 100; i++ {
        fmt.Println("i is: ", i)
    }

    //go for语句可以省略表达式1 和 表达式3,用法同while
    x := 0
    for x < 1000 {
        fmt.Println("x is : ", x)
        x += 1
    }

    //同样go语言循环语句中也可以使用break 和 continue,用法和其它语言相同
}
  • switch语句

go语言中的switch的特色之处在于,go语言的case语句后自带break,如果不行case到某条语句后不想break可以使用关键字fallthrough

func main() {
    //1.go语言的case语句后自带break语句,匹配到后自动跳出
    i := 2
    switch i {
    case 1:
        fmt.Println("i is 1")
    case 2:
        fmt.Println("i is 2")
    case 3:
        fmt.Println("i is 3")
    default:
        fmt.Println("none")
    }

    //2.可以使用fallthrough强制执行后面的语句
    switch i {
    case 1:
        fmt.Println("i is 1")
        fallthrough
    case 2:  //case到2后强制执行吓一跳case
        fmt.Println("i is 2")
        fallthrough
    case 3:
        fmt.Println("i is 3")
        fallthrough
    default:
        fmt.Println("none")
    }
}

函数

  • go语言函数支持多个返回值
func funcName(input1 type1, input2 type2) (output1 type1, ouput2 type2) {
    //code
    //返回多个值
    return value1, value2
}
  • 变参函数
    函数体中,变量arg是一个int的slice
func func1(arg ...int) {
    for _, n := range arg {
        fmt.Println("arg is: ", n)
    }
}
  • 传值与传指针
    go 语言的指针同样也是使用 & 和 *

  • defer
    函数中使用defer语句,当函数执行到最后时defer语句会按照逆序执行,最后函数返回

  • main 函数和init函数
    init 能够应用到所有的package,main函数只能应用到package main
    这两个函数在定义时不能有任何的参数和返回值,go语言会自动调用init和main函数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352