第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

從函數(shù)返回的正確方法是什么?

從函數(shù)返回的正確方法是什么?

Go
蠱毒傳說 2023-07-26 17:10:01
我很困惑應(yīng)該如何從函數(shù)返回值。我正在嘗試下面的例子:將 false 傳遞給函數(shù) ac 的值在函數(shù) a 中將為 false它將進(jìn)行遞歸調(diào)用,這會(huì)將 c 的值從 false 更改為 true所以函數(shù)應(yīng)該返回一個(gè)字符串“true”和bool true,但它返回一個(gè)字符串“false”和bool falsepackage mainimport (    "fmt")func a(c bool) (string, bool) {    if c {        return "true", true    }    a(true)    return "false", false}func main() {    s, ok := a(false)   fmt.Println(s, ok)}https://play.golang.org/p/uSIN2k0G3QW
查看完整描述

3 回答

?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊

當(dāng) 為 false 時(shí),您的遞歸代碼將始終返回“false” false c。請(qǐng)參閱下面的正確代碼。


package main


import (

    "fmt"

)


func a(c bool) (string, bool) {

    if c {

        return "true", true

    }

    return a(true)

}


func main() {

    s, ok := a(false)

   fmt.Println(s, ok)

}


查看完整回答
反對(duì) 回復(fù) 2023-07-26
?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

這將導(dǎo)致 2 級(jí)遞歸。在第一級(jí)中,您將 c 設(shè)置為 false。然后你調(diào)用 a(true) 并且你處于返回 true 的第二級(jí)?,F(xiàn)在您回到了第 1 層的 a(true) 行,下一行是將 false 作為字符串和布爾值返回。因此,最終輸出為 false。

我認(rèn)為您正在嘗試使用返回值,但現(xiàn)在情況并非如此。


查看完整回答
反對(duì) 回復(fù) 2023-07-26
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊

目前尚不清楚您認(rèn)為您的代碼應(yīng)該做什么,但它實(shí)際上在做什么:

  1. a使用以下值進(jìn)行調(diào)用false

    它檢查是否c為真:

    if c {

    但事實(shí)并非如此,所以它繼續(xù)

  2. 它再次調(diào)用a,這次使用 value true,但完全忽略結(jié)果:

    a(true)
  3. 然后返回 false:

    return "false", false

這意味著步驟 #2 是完全無操作的(并且可能被編譯器完全刪除)。

也許你想用 的返回值做一些事情a(true)?



查看完整回答
反對(duì) 回復(fù) 2023-07-26
  • 3 回答
  • 0 關(guān)注
  • 186 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)