Go学习笔记-函数、流程控制 | 青训营笔记

96 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第3天

控制符

  • %T输出参数类型
  • %v相应值的默认形式;
  • %d %o %x %X输出十进制、八进制、十六进制
  • %q 包含单引号的字符
  • 在百分号后面加[n]表示输出第几个参数
  • 在百分号后面加#表示输出对应进制时加上前缀,八进制加0,十六进制加0x或0X

函数

函数的参数

函数可以没有参数,也可以接收多个参数,参数的类型放在参数的后边,当多个参数的类型相同时,除最后一个参数其他参数的类型可以省略

函数的返回值

  • 函数可以返回任意数量的返回值,须在参数列表后声明返回值的类型
  • 返回值可以直接命名,在参数列表后,命名后的返回值可以直接返回,即只写return就会返回

流程控制语句

for循环

  • Go中只有for一种循环语句
  • for循环不用写括号
  • 初始化语句、条件语句和后置语句都可去掉;去掉初始化语句和后置语句便是while循环;三个语句都省略掉便是死循环

if语句

  • if语句不用写括号
  • if语句的条件表达式之前可以执行一个简单的语句

switch语句

switch x {
    case a :
        fallthrough
    case b :
    default :
}
  • x可以是任意类型
  • 默认在每个case语句块的后面加了break,若还想往下执行,需要加fallthrough
  • default只作为默认执行,即便前面加了fallthrough也不会执行default
  • a,b无需为常量,也不必为整数,但a,b和i要保持一致
  • 当switch没有条件时,同switch true一样,会往下执行,case后面跟上条件即可像if-then-else语句一样

defer语句

  • defer语句会将其后的函数推迟到外层函数结束时执行
  • 推迟的函数会被压入栈中,外层函数结束后,被推迟的函数根据先进后出的原则被调用