首頁 > 後端開發 > Golang > 如何正確使用Go條件語句中的函數呼叫?

如何正確使用Go條件語句中的函數呼叫?

Mary-Kate Olsen
發布: 2025-01-03 00:13:38
原創
537 人瀏覽過

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

條件語句中的函數求值

條件語句通常需要在其條件內求值函數。然而,當嘗試使用函數呼叫作為此類語句中的值時,Go 程式語言提出了特定要求。為了更好地理解這一點,請考慮以下範例:

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
}
登入後複製

此程式碼片段嘗試比較條件語句中兩個函數呼叫的結果。但是,它無法編譯,並產生以下錯誤:

./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
登入後複製

該錯誤源自於 sumThis 函數缺少回傳類型。透過省略返回類型,Go 將函數解釋為傳回 void。然後,當您嘗試將函數呼叫用作條件語句中的值時,編譯器找不到傳回類型,並將呼叫視為用於其副作用而不是傳回值。

要解決此問題,您必須明確宣告函數的傳回類型。在這種情況下,由於sumThis 函數傳回一個整數,因此它的簽名應該是:

func sumThis(a, b int) int {
    // ...
}
登入後複製

使用正確的函式簽名,程式碼將成功編譯並正確比較內部函式呼叫的回傳值條件語句。

以上是如何正確使用Go條件語句中的函數呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板