About 784 wordsAbout 3 min
Golang
2024-7-15
笔记记录了Golang中的函数相关。
main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。如果你的 main 包的源代码没有包含 main 函数,则会引发构建错误 undefined: main.main
。main 函数既没有参数,也没有返回类型(与 C 家族中的其它语言恰好相反)。如果你不小心为 main 函数添加了参数或者返回类型,将会引发构建错误:
func main must have no arguments and no return values results.
在程序开始执行并完成初始化后,第一个调用(程序的入口点)的函数是 main.main()
(如:C 语言),该函数一旦返回就表示程序已成功执行并立即退出。
函数里的代码(函数体)使用大括号 {}
括起来。
左大括号 {
必须与方法的声明放在同一行,这是编译器的强制规定,否则你在使用 gofmt 时就会出现错误提示:
`build-error: syntax error: unexpected semicolon or newline before {`
右大括号 }
需要被放在紧接着函数体的下一行。如果你的函数非常简短,你也可以将它们放在同一行:
unc Sum(a, b int) int { return a + b }
对于大括号 {}
的使用规则在任何时候都是相同的(如:if 语句等)。
因此符合规范的函数一般写成如下的形式:
func functionName(parameter_list) (return_value_list) {
…
}
只有当某个函数需要被外部包调用的时候才使用大写字母开头,并遵循 Pascal 命名法;否则就遵循骆驼命名法,即第一个单词的首字母小写,其余单词的首字母大写。
下面这一行调用了 fmt
包中的 Println
函数,可以将字符串输出到控制台,并在最后自动增加换行字符 :
fmt.Println("hello, world")
使用 fmt.Print("hello, world ")
可以得到相同的结果。
Print
和 Println
这两个函数也支持使用变量,如:fmt.Println(arr)
。如果没有特别指定,它们会以默认的打印格式将变量 arr
输出到控制台。
单纯地打印一个字符串或变量甚至可以使用预定义的方法来实现,如:print
、println:print("ABC")
、println("ABC")
、println(i)
(带一个变量 i)。
这些函数只可以用于调试阶段,在部署程序的时候务必将它们替换成 fmt
中的相关函数。
当被调用函数的代码执行到结束符 }
或返回语句时就会返回,然后程序继续执行调用该函数之后的代码。
程序正常退出的代码为 0 即 Program exited with code 0
;如果程序因为异常而被终止,则会返回非零值,如:1。这个数值可以用来测试是否成功执行一个程序。