W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
原文鏈接:https://gopl-zh.github.io/ch2/ch2-02.html
聲明語句定義了程序的各種實體對象以及部分或全部的屬性。Go語言主要有四種類型的聲明語句:var、const、type和func,分別對應(yīng)變量、常量、類型和函數(shù)實體對象的聲明。這一章我們重點討論變量和類型的聲明,第三章將討論常量的聲明,第五章將討論函數(shù)的聲明。
一個Go語言編寫的程序?qū)?yīng)一個或多個以.go為文件后綴名的源文件。每個源文件中以包的聲明語句開始,說明該源文件是屬于哪個包。包聲明語句之后是import語句導(dǎo)入依賴的其它包,然后是包一級的類型、變量、常量、函數(shù)的聲明語句,包一級的各種類型的聲明語句的順序無關(guān)緊要(譯注:函數(shù)內(nèi)部的名字則必須先聲明之后才能使用)。例如,下面的例子中聲明了一個常量、一個函數(shù)和兩個變量:
gopl.io/ch2/boiling
// Boiling prints the boiling point of water.
package main
import "fmt"
const boilingF = 212.0
func main() {
var f = boilingF
var c = (f - 32) * 5 / 9
fmt.Printf("boiling point = %g°F or %g°C\n", f, c)
// Output:
// boiling point = 212°F or 100°C
}
其中常量boilingF是在包一級范圍聲明語句聲明的,然后f和c兩個變量是在main函數(shù)內(nèi)部聲明的聲明語句聲明的。在包一級聲明語句聲明的名字可在整個包對應(yīng)的每個源文件中訪問,而不是僅僅在其聲明語句所在的源文件中訪問。相比之下,局部聲明的名字就只能在函數(shù)內(nèi)部很小的范圍被訪問。
一個函數(shù)的聲明由一個函數(shù)名字、參數(shù)列表(由函數(shù)的調(diào)用者提供參數(shù)變量的具體值)、一個可選的返回值列表和包含函數(shù)定義的函數(shù)體組成。如果函數(shù)沒有返回值,那么返回值列表是省略的。執(zhí)行函數(shù)從函數(shù)的第一個語句開始,依次順序執(zhí)行直到遇到return返回語句,如果沒有返回語句則是執(zhí)行到函數(shù)末尾,然后返回到函數(shù)調(diào)用者。
我們已經(jīng)看到過很多函數(shù)聲明和函數(shù)調(diào)用的例子了,在第五章將深入討論函數(shù)的相關(guān)細(xì)節(jié),這里只簡單解釋下。下面的fToC函數(shù)封裝了溫度轉(zhuǎn)換的處理邏輯,這樣它只需要被定義一次,就可以在多個地方多次被使用。在這個例子中,main函數(shù)就調(diào)用了兩次fToC函數(shù),分別使用在局部定義的兩個常量作為調(diào)用函數(shù)的參數(shù)。
gopl.io/ch2/ftoc
// Ftoc prints two Fahrenheit-to-Celsius conversions.
package main
import "fmt"
func main() {
const freezingF, boilingF = 32.0, 212.0
fmt.Printf("%g°F = %g°C\n", freezingF, fToC(freezingF)) // "32°F = 0°C"
fmt.Printf("%g°F = %g°C\n", boilingF, fToC(boilingF)) // "212°F = 100°C"
}
func fToC(f float64) float64 {
return (f - 32) * 5 / 9
}
![]() | ![]() |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: