Pergi fungsi asas bahasa

Lepaskan: 2023-07-21 11:45:58
ke hadapan
807 orang telah melayarinya

Apakah fungsi?

Fungsi ialah blok kod yang melaksanakan tugas tertentu. Fungsi mengambil input, melakukan beberapa pengiraan pada input, dan menghasilkan output.

Pengisytiharan fungsi

Sintaks pengisytiharan fungsi bahasa Go adalah seperti berikut:

func functionname(parametername type) returntype {
 //function body
}
Salin selepas log masuk

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)
Salin selepas log masuk

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() {
}
Salin selepas log masuk

Fungsi mudah

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

Sekarang kita telah menulis fungsi, mari cuba panggil fungsi ini. Sintaks untuk memanggil fungsi ialah functionname(parameters).

Total price is 540
Salin selepas log masuk

多值返回

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)
}
Salin selepas log masuk

执行[2]

如果一个函数返回多个值则需要使用 () 指定,比如:

func rectProps(length, width float64)(float64, float64)
Salin selepas log masuk

该函数有两个 float64 参数 length 和 width,也返回两个 float64 类型的值。

上面的代码输出:

Area 60.480000 Perimeter 32.800000
Salin selepas log masuk

命名返回值

可以从函数返回命名值。如果返回值被命名,则可以认为它在函数的第一行被声明为变量,并初始化为相应类型的零值。

上面的 rectProps() 函数可以使用命名的返回值重写:

func rectProps(length, width float64)(area, perimeter float64) {
    area = length * width
    perimeter = (length + width) * 2
    return //no explicit return value
}
Salin selepas log masuk

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)
}
Salin selepas log masuk

执行[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!

Label berkaitan:
sumber:Go语言进阶学习
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!