iT邦幫忙

DAY 10
0

初學 Golang 30 天系列 第 10

初學 Golang 30 天 - (十)函式

# 1. 函式

範例程式碼

package main  
 
import "fmt"  
 
func add(x int, y int) int {  
return x + y  
}  
 
func main() {  
fmt.Println(add(42, 13))  
}  

函數可以沒有參數或接受多個參數。
在這個例子中,"add" 接受兩個 int 類型的參數。
注意類型在變數之後。
return 代表傳回的數值為何,這裡表示傳回 x + y 也就是 42+13 ,所以結果會是 55。
詳細的語法定義可以參考官方文件。
當兩個或多個連續的函數命名參數是同一類型,則除了最後一個類型之外,其他都可以省略。
舉例來說

x int, y int

可以被縮寫為

x, y int

也就是說上面的範例程式碼可以改成

package main  
 
import "fmt"  
 
func add(x, y int) int {  
return x + y  
}  
 
func main() {  
fmt.Println(add(42, 13))  
}  

兩種方法的輸出結果都會是相同的。

輸出結果

55


2. 多數值的返回

函數可以返回任意數量的返回值。
這個函數返回了兩個字串。

範例程式碼

package main  
 
import "fmt"  
 
func swap(x, y string) (string, string) {  
return y, x  
}  
 
func main() {  
a, b := swap("hello", "world")  
fmt.Println(a, b)  
}  

輸出結果

world hello


3. 命名返回值

在 Go 中,函數可以返回多個「結果參數」,而不僅僅是一個值。它們可以像變數那樣命名和使用。
如果命名了返回值參數,一個沒有參數的 return 語句,會將當前的值作為返回值返回。
以這個程式碼為例,sum int 表示宣告整數 sum ,將參數 17 放入 sum 中,x, y int 宣告整數 x,y 在下面使用,由於 return 沒有設定返回值,這邊程式就將 x,y 都回傳了,所以結果會出現 7 10。

範例程式碼

package main  
 
import "fmt"  
 
func split(sum int) (x, y int) {  
x = sum * 4 / 9  
y = sum - x  
return  
}  
 
func main() {  
fmt.Println(split(17))  
}  

輸出結果

7 10


:= 的用法,在後面會有較詳細的說明。


上一篇
初學 Golang 30 天 - (九)Map
下一篇
初學 Golang 30 天(十一)Goroutine
系列文
初學 Golang 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
screenleon
iT邦新手 1 級 ‧ 2020-04-27 11:05:29

split function 中的 x = sum \* 4 / 9
出錯: illegal character U+005C ''
是否有多打\

我是使用vscode

e222et iT邦新手 2 級 ‧ 2020-04-27 15:42:12 檢舉

當年鐵人賽的系統跟現在這邊不太一樣,可能他們再轉移資料的時候 escape 多跑出來的東西,確實是多一個 \ 沒錯

好的 了解
謝謝你分享內容

我要留言

立即登入留言