about func
有了变数、有了保留字之後,我们需要 方法/function/method/函式/func,可以让程序的结构更整洁、减少重复性 ... 之类的功能
在刚开始写 go 时,我们大部分的程序码都是放在主函式 func main() 中
package main
func main() {
//mission 1
//mission 2
//mission 3
.
.
.
END
}
随着程序码规模提升,这样写法渐渐不敷使用
一个 func 动辄上百行,假设有 20 个 func 就要两千行,程序码上下卷动不易维护,也无法将程序码分离在不同档案中。
用写函式 (function) 的方式来分离程序码,函式是程序码共用的基础。物件导向的方法 (method) 是以函式为基础。
之前在聊变数时,就已经使用过一些函式了,像是在 fmt 套件的 Println 函式,可在 terminal 中印出文字。
Public vs private
依宣告规则, Go 的公开函式都是以大写开头,这是 Go 语言的一项设计
只有字母大写的函式或方法才会公开给外界使用。
来写一个简单的 hello func,并且呼叫三次:
package main
import (
"fmt"
)
func helloGo() {
fmt.Println("Hello ironman2021")
}
func main() {
helloGo()
helloGo()
helloGo()
}
虽然这个函式非常简单,但可以知道,函式可以『重覆再利用』的。
parameter
函式可以加入参数 (parameter),透过参数来改变函式的行为
package main
import (
"fmt"
)
func hello(name string) {
fmt.Println(fmt.Sprintf("Hello %s", name))
}
func main() {
hello("Eric")
hello("William")
hello("Amy")
}
输出为
Hello Eric
Hello William
Hello Amy
return
函式运作後,可以回传值到外层 (return value)
package main
import (
"log"
"math"
)
func add(a float64, b float64) float64 {
return a + b
}
func main() {
x := add(0.3, 0.4)
fmt.Println(x)
}
x 为 add() 方法 return 的计算结果
x declared but not used
多值回传
Go 函式允许多个回传值,如以下实例:
package main
import (
"log"
)
func addsub(a int, b int) (int, int) {
return a + b, a - b
}
func main() {
m, n := addsub(5, 3)
fmt.Println("m =", m, "n =", n)
}
输出为
m = 8 n = 2
多回传值时常用於错误处理 (error handling) 中,比方说...call API 失败, 写入 DB 失败, parseInt 失败...等 各种失败
错误处理在 golang 中是很重要的一环,避免 panic 避免服务死掉,是我们的最高原则
<<: Day 16 : 特徵工程 tf.Tramsform 实作
>>: [Python 爬虫这样学,一定是大拇指拉!] DAY01 - 系列文前言
昨天介绍完如何跳页,今天将会分享如何跳页传值。 成品: 刚执行模拟器的样子 按下 Button 後会...
正文 今天要来一日体验rancher server上的dashboard功能 使用racher2.6...
创建App-设定界面(一) --- 设定是App中能让使用者调整适合自己的方式,而本App的设定界面...
说了好几天的概念,再不动手真的会睡着。让我们先来本机炸一炸,加深我们的学习动机。 安装前,先注意两大...
写程序,弄个 IDE 真的会方便不少,如果您是要在 ubuntu 20.04 上面使用 Code::...