回到简体

This commit is contained in:
chai2010
2016-02-15 11:06:34 +08:00
parent 9e878f9944
commit 2b37b23285
177 changed files with 2354 additions and 2354 deletions

View File

@@ -1,6 +1,6 @@
## 5.1. 函數聲
## 5.1. 函数声
數聲明包括函名、形式參數列表、返值列表(可省略)以及函數體
数声明包括函名、形式参数列表、返值列表(可省略)以及函数体
```Go
func name(parameter-list) (result-list) {
@@ -8,8 +8,8 @@ func name(parameter-list) (result-list) {
}
```
形式參數列表描述了函數的參數名以及參數類型。這些參數作爲局部量,其值由參數調用者提供。返值列表描述了函數返迴值的量名以及型。如果函數返迴一個無名變量或者有返值,返值列表的括是可以省略的。如果一個函數聲明不包括返值列表,那麽函數體執行完畢後,不會返迴任何值。
在hypot函中,
形式参数列表描述了函数的参数名以及参数类型。这些参数作为局部量,其值由参数调用者提供。返值列表描述了函数返回值的量名以及型。如果函数返回一个无名变量或者有返值,返值列表的括是可以省略的。如果一个函数声明不包括返值列表,那么函数体执行完毕后,不会返回任何值。
在hypot函中,
```Go
func hypot(x, y float64) float64 {
@@ -18,18 +18,18 @@ func hypot(x, y float64) float64 {
fmt.Println(hypot(3,4)) // "5"
```
x和y是形名,3和4是調用時的傳入的實數,函數返迴了一float64型的值。
值也可以像形式參數一樣被命名。在這種情況下,每個返迴值被明成一局部量,併根據該返迴值的型,其初始化0。
如果一個函數在聲明時,包含返值列表,該函數必須以 return語句結尾,除非函數明顯無法運行到結尾處。例如函數在結尾時調用了panic常或函中存在限循
x和y是形名,3和4是调用时的传入的实数,函数返回了一float64型的值。
值也可以像形式参数一样被命名。在这种情况下,每个返回值被明成一局部量,并根据该返回值的型,其初始化0。
如果一个函数在声明时,包含返值列表,该函数必须以 return语句结尾,除非函数明显无法运行到结尾处。例如函数在结尾时调用了panic常或函中存在限循
正如hypot一,如果一組形參或返值有相同的型,我不必爲每個形參都寫出參數類型。下面2個聲明是等的:
正如hypot一,如果一组形参或返值有相同的型,我不必为每个形参都写出参数类型。下面2个声明是等的:
```Go
func f(i, j, k int, s, t string) { /* ... */ }
func f(i int, j int, k int, s string, t string) { /* ... */ }
```
下面,我們給出4方法聲明擁有2int型參數和1int型返值的函.blank identifier(譯者註:卽下文的_符)可以強調某個參數未被使用。
下面,我们给出4方法声明拥有2int型参数和1int型返值的函.blank identifier(译者注:即下文的_符)可以强调某个参数未被使用。
```Go
func add(x int, y int) int {return x + y}
@@ -43,15 +43,15 @@ fmt.Printf("%T\n", first) // "func(int, int) int"
fmt.Printf("%T\n", zero) // "func(int, int) int"
```
數的類型被稱爲函數的標識符。如果兩個函數形式參數列表和返值列表中的變量類型一一對應,那麽這兩個函數被認爲有相同的型和標識符。形和返值的量名不影響函數標識符也不影響它們是否可以以省略參數類型的形式表示。
数的类型被称为函数的标识符。如果两个函数形式参数列表和返值列表中的变量类型一一对应,那么这两个函数被认为有相同的型和标识符。形和返值的量名不影响函数标识符也不影响它们是否可以以省略参数类型的形式表示。
每一次函數調用都必按照聲明順序爲所有參數提供實參參數值。在函數調用時Go語言沒有默認參數值,也有任何方法可以通過參數名指定形,因此形和返值的量名對於函數調用者而言有意
每一次函数调用都必按照声明顺序为所有参数提供实参参数值。在函数调用时Go语言没有默认参数值,也有任何方法可以通过参数名指定形,因此形和返值的量名对于函数调用者而言有意
在函數體中,函的形參作爲局部量,被初始化爲調用者提供的值。函的形和有名返值作爲函數最外的局部量,被存在相同的詞法塊中。
在函数体中,函的形参作为局部量,被初始化为调用者提供的值。函的形和有名返值作为函数最外的局部量,被存在相同的词法块中。
實參通過值的方式傳遞,因此函的形參是實參的拷貝。對形參進行脩改不會影響實參。但是,如果實參包括引用型,如指slice(切片)、map、function、channel等型,實參可能會由於函數的簡介引用被改。
实参通过值的方式传递,因此函的形参是实参的拷贝。对形参进行修改不会影响实参。但是,如果实参包括引用型,如指slice(切片)、map、function、channel等型,实参可能会由于函数的简介引用被改。
你可能會偶爾遇到有函數體的函數聲明,表示該函數不是以Go實現的。這樣的聲明定了函數標識符。
你可能会偶尔遇到有函数体的函数声明,表示该函数不是以Go实现的。这样的声明定了函数标识符。
```Go
package math