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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何遞歸捕獲用戶輸入

如何遞歸捕獲用戶輸入

Go
慕桂英3389331 2022-05-23 14:54:05
我正在嘗試在 Go 中捕獲一堆數(shù)字的輸入。我不允許做 for 循環(huán)。用戶輸入是多行的。但是,下面的函數(shù)沒有返回 a 的預(yù)期結(jié)果[]int,而是返回一個空數(shù)組。為什么是這樣?還是有另一種方法可以在沒有 for 循環(huán)的情況下捕獲多行用戶輸入?func input_to_list() []int {    fmt.Print("continuously enter text: ")    reader := bufio.NewReader(os.Stdin)    user_input, _ := reader.ReadString('\n')    print(user_input)    var result []int    if user_input == "\n" {        return result    }    return append(result, input_to_list()...)}
查看完整描述

2 回答

?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗 獲得超5個贊

如何遞歸捕獲用戶輸入?


我不允許做 for 循環(huán)。


例如,


package main


import (

    "bufio"

    "fmt"

    "io"

    "os"

    "strconv"

    "strings"

)


func readInt(rdr *bufio.Reader, n []int) []int {

    line, err := rdr.ReadString('\n')

    line = strings.TrimSpace(line)

    if i, err := strconv.Atoi(line); err == nil {

        n = append(n, i)

    }

    if err == io.EOF || strings.ToLower(line) == "end" {

        return n

    }

    return readInt(rdr, n)

}


func ReadInts() []int {

    fmt.Print("enter integers:\n")

    var n []int

    rdr := bufio.NewReader(os.Stdin)

    return readInt(rdr, n)

}


func main() {

    n := ReadInts()

    fmt.Println(n)

}

輸出:


enter integers:

42

7

end

[42 7]


查看完整回答
反對 回復(fù) 2022-05-23
?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗 獲得超6個贊

您的函數(shù)永遠(yuǎn)不會為result.


func input_to_list() []int {

    /* ... */

    var result []int                          // Create empty `result` slice

    if user_input == "\n" {

        return result                         // Return empty result slice

    }

    return append(result, input_to_list()...) // Combine two empty slices, and return the (still) empty slice

}

讓我們一步一步來:

  1. 您創(chuàng)建一個名為result

  2. 如果user_input為空,則立即返回結(jié)果。

  3. 如果user_input不為空,則input_to_list()遞歸調(diào)用,并將其(空)結(jié)果添加到空結(jié)果中,然后返回該(仍然)空結(jié)果。

為了獲得您想要的行為,您應(yīng)該使用user_input. 可能與strconv.Atoi或類似的東西,然后將其添加到result.


查看完整回答
反對 回復(fù) 2022-05-23
  • 2 回答
  • 0 關(guān)注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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