IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Golang编程开发(4)—流程控制和函数

    cjhust发表于 2016-01-22 14:05:17
    love 0

    1、流控

    if/else

    if a< 5 {
    return 0
    } else {
    return 1
    }

    需要主要以下几点:

    (1)条件语句不需要使用括号将条件包含起来;

    (2)无论语句体内有几条语句,花括号{}都是必须存在的;

    (3)在if之后,条件语句之前,可以添加变量初始化语句,使用;间隔;

    (4)在有返回值的函数中,不允许将最终的return语句包含在if…else…结构中;

    switch/case/select

    switch i {
     case 0:
      fmt.Printf(“0”)
    case 1:
    fallthrough
    case 2, 3, 4:
    fmt.Printf(“4, 5, 6”)
    case 5<=i && i<=9:
    fmt.Printf(“7-9”)
    default:
    fmt.Printf("Default")
    }

    需要主要以下几点:

    (1)在单个case中,可以出现多个结果选项;

    (2)go语言不需要break来明确退出一个case;

    (3)只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case;

    for/range

    sum := 0
    for i=0; i<10; i++ {
    sum += i
    if sum > 10 {
    break JLoop
    }
    if sum > 5 {
    goto End
    }
    }

    JLoop:...
    End:...

     

    2、函数

    Go语言下的内置函数:

            copy():copy(mySlice1, mySlice2);

            delete():delete(myMap, “1234”);

            panic():当一个函数执行过程中调用panic()函数时,正常的函数执行流程将立即终止;

            recover():用于终止错误处理流程;

    备注:

    (1)小写字母开头的函数只在本包内可见,大写字母开头的函数才能被其他包使用;

    (2)不定参数是指函数传入的参数个数为不定数量:fun myfunc(args …int),func Printf(format string, args …interface{})任意类型;

    (3)匿名函数是指不需要定义函数名的一种函数实现方式如func (a, b int) bool{return true};

    (4)对于大多数函数,如果要返回错误,可以将error作为多种返回值中的最后一个,但这不是强制要求;

    (5)defer语句的调用时遵照先进后出的原则,即最后一个defer语句将最先被执行;



沪ICP备19023445号-2号
友情链接