Rumah > Artikel > pembangunan bahagian belakang > Pergi fungsi asas bahasa
Apakah fungsi?
Fungsi ialah blok kod yang melaksanakan tugas tertentu. Fungsi mengambil input, melakukan beberapa pengiraan pada input, dan menghasilkan output.
Sintaks pengisytiharan fungsi bahasa Go adalah seperti berikut:
func functionname(parametername type) returntype { //function body }
Pengisytiharan fungsi bermula dengan kata kunci func, diikuti dengan nama fungsi. Parameter ditentukan dalam kurungan segi empat sama (), diikuti dengan jenis pemulangan fungsi. Sintaks untuk menentukan parameter ialah nama parameter diikuti dengan jenis parameter Anda boleh menentukan sebarang bilangan parameter, seperti ini:
(parameter1 type, parameter2 type)
Bahagian utama fungsi diletakkan di dalam kurungan kerinting.
Parameter dan nilai pulangan adalah pilihan, jadi pengisytiharan berikut juga merupakan pengisytiharan fungsi yang sah:
func functionname() { }
Mari kita tulis fungsi yang parameternya ialah harga unit produk dan kuantiti produk , untuk mengira jumlah harga produk dan mengembalikannya.
func calculateBill(price int, no int) int { var totalPrice = price * no return totalPrice }
Parameter input fungsi di atas ialah harga dan tidak, kedua-duanya jenis int Produk kedua-duanya ditetapkan kepada totalPrice dan dikembalikan sebagai nilai pulangan juga daripada jenis int.
Jika parameter berturutan adalah daripada jenis yang sama, kita boleh mengelak daripada menyatakan jenis untuk setiap parameter dan hanya perlu menentukan jenis parameter terakhir Contohnya, harga int, tiada int boleh ditulis sebagai harga, tiada int , jadi Fungsi di atas boleh diubah suai kepada:
func calculateBill(price, no int) int { var totalPrice = price * no return totalPrice }
Sekarang kita telah menulis fungsi, mari cuba panggil fungsi ini. Sintaks untuk memanggil fungsi ialah functionname(parameters).
Total price is 540
Go 语言是允许函数返回多个值的。我们来写一个 rectProps() 函数,该函数的参数是长方形的 length 和 width,返回长方形的 area(面积) 和 perimeter(周长)。
package main import ( "fmt" ) func rectProps(length, width float64)(float64, float64) { var area = length * width var perimeter = (length + width) * 2 return area, perimeter } func main() { area, perimeter := rectProps(10.8, 5.6) fmt.Printf("Area %f Perimeter %f", area, perimeter) }
执行[2]
如果一个函数返回多个值则需要使用 () 指定,比如:
func rectProps(length, width float64)(float64, float64)
该函数有两个 float64 参数 length 和 width,也返回两个 float64 类型的值。
上面的代码输出:
Area 60.480000 Perimeter 32.800000
可以从函数返回命名值。如果返回值被命名,则可以认为它在函数的第一行被声明为变量,并初始化为相应类型的零值。
上面的 rectProps() 函数可以使用命名的返回值重写:
func rectProps(length, width float64)(area, perimeter float64) { area = length * width perimeter = (length + width) * 2 return //no explicit return value }
area 和 perimeter 是函数中命名的返回值。
需要注意的是,函数里的 return 语句没有返回任何值。由于在函数声明中将 area 和 perimeter 指定为返回值,因此当遇到 return 语句时,它们会自动从函数中返回。
Go 语言里面,下划线 _ 可以被当做空白符使用。它可以用来代替任何类型的任何值,让我们看看这个空白标识符有什么用。
rectProps() 函数返回长方形的面积和周长。如果我们只想要面积,而不想要周长那该怎么办呢?这时候空百符 _ 就可以派上用场了。
package main import ( "fmt" ) func rectProps(length, width float64) (float64, float64) { var area = length * width var perimeter = (length + width) * 2 return area, perimeter } func main() { area, _ := rectProps(10.8, 5.6) // perimeter is discarded fmt.Printf("Area %f ", area) }
执行[3]
上面代码的第 13 行,我们接收了函数返回的 area,并使用 _ 忽略了 perimeter。
Atas ialah kandungan terperinci Pergi fungsi asas bahasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!