Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Menggunakan Panggilan Fungsi dengan Betul dalam Pernyataan Bersyarat Go?

Bagaimanakah Saya Menggunakan Panggilan Fungsi dengan Betul dalam Pernyataan Bersyarat Go?

Mary-Kate Olsen
Lepaskan: 2025-01-03 00:13:38
asal
537 orang telah melayarinya

How Do I Correctly Use Function Calls in Go's Conditional Statements?

Penilaian Fungsi dalam Pernyataan Bersyarat

Pernyataan bersyarat selalunya memerlukan penilaian fungsi dalam keadaannya. Walau bagaimanapun, bahasa pengaturcaraan Go mengenakan keperluan khusus apabila cuba menggunakan panggilan fungsi sebagai nilai dalam pernyataan tersebut. Untuk memahami perkara ini dengan lebih baik, pertimbangkan contoh berikut:

package main

import "fmt"

func main() {
    if sumThis(1, 2) > sumThis(3, 4) {
        fmt.Println("test")
    } else {
        fmt.Println("derp")
    }
}

func sumThis(a, b int) {
    return a + b
}
Salin selepas log masuk

Coretan kod ini cuba membandingkan hasil dua panggilan fungsi dalam pernyataan bersyarat. Walau bagaimanapun, ia gagal untuk menyusun, menghasilkan ralat berikut:

./test4.go:4: sumThis(1, 2) used as value
./test4.go:4: sumThis(3, 4) used as value
./test4.go:11: too many arguments to return
Salin selepas log masuk

Ralat berpunca daripada ketiadaan jenis pulangan untuk fungsi sumThis. Dengan mengecualikan jenis pemulangan, Go mentafsirkan fungsi sebagai pemulangan tidak sah. Apabila anda kemudian cuba menggunakan panggilan fungsi sebagai nilai dalam pernyataan bersyarat, pengkompil tidak menemui jenis pemulangan dan menganggap panggilan seperti yang digunakan untuk kesan sampingannya dan bukannya nilai pemulangannya.

Untuk menyelesaikan isu ini, anda mesti mengisytiharkan jenis pulangan untuk fungsi anda secara eksplisit. Dalam kes ini, memandangkan fungsi sumThis mengembalikan integer, tandatangannya hendaklah:

func sumThis(a, b int) int {
    // ...
}
Salin selepas log masuk

Dengan tandatangan fungsi yang betul di tempatnya, kod akan berjaya menyusun dan betul membandingkan nilai pulangan panggilan fungsi dalam pernyataan bersyarat.

Atas ialah kandungan terperinci Bagaimanakah Saya Menggunakan Panggilan Fungsi dengan Betul dalam Pernyataan Bersyarat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan