亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Golang:嘗試創建一個名稱,年齡元組,具有類似于python的zip功能

Golang:嘗試創建一個名稱,年齡元組,具有類似于python的zip功能

Go
慕娘9325324 2022-08-15 17:06:38
我有兩個數據元素,如"bob julie mark mike"和"20,30,40,50"我拆分了它們,現在我試圖實現返回python:zip類型的結果,如下所示[("bob", "20"), ("julie", "30"), ("mark", "40"), ("mike", "50)]我已經嘗試了下面的代碼,但我在第一行得到錯誤unexpected comma, expecting )namesAgesTuple[index] = stringTuple[(value, b[index])]以下是完整的代碼package mainimport (    "fmt"    "strings")type stringTuple struct {    names string    ages  string}func main() {    var names string = "bob julie mark mike"    namesArray := strings.Split(names, " ")    fmt.Println(namesArray)    var ages string = "20,30,40,50"    agesArray := strings.Split(ages, ",")    fmt.Println(agesArray)    namesAges := make(map[string]string)    println(len(namesArray))    println(len(agesArray))    print(namesAges)    fmt.Println(zip(namesArray, agesArray))}func zip(a []string, b []string) ([]stringTuple, error) {    if len(a) != len(b) {        return nil, fmt.Errorf("zip: arguments length must be same ")    }    namesAgesTuple := make(map[int][]stringTuple)    for index, value := range a {        namesAgesTuple[index] = stringTuple[(value, b[index])]    }    fmt.Println(namesAgesTuple)    return namesAgesTuple, nil}任何幫助都非常感謝。
查看完整描述

1 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

Go 沒有元組語法,也許你想要這樣的東西:


stringTuple{value, b[index]}

由于 是 一個結構,這是初始化其字段;您還可以顯式提供字段名稱,如下所示:stringTuple


stringTuple{names: value, ages: b[index]}

代碼中的另一個問題是 從 到 切片的映射。但是該函數只返回一個切片,所以我不確定為什么你在那里使用地圖。namesAgesTupleintstringTuple


我可能會把代碼寫成這樣(Go playground link):


type stringTuple struct {

    names string

    ages  string

}


func main() {

    var names string = "bob julie mark mike"

    namesArray := strings.Split(names, " ")

    fmt.Println(namesArray)


    var ages string = "20,30,40,50"

    agesArray := strings.Split(ages, ",")

    fmt.Println(agesArray)


    fmt.Println(zip(namesArray, agesArray))

}


func zip(a []string, b []string) ([]stringTuple, error) {

    if len(a) != len(b) {

        return nil, fmt.Errorf("zip: arguments length must be same ")

    }


    var namesAges []stringTuple

    for index, value := range a {

        namesAges = append(namesAges, stringTuple{value, b[index]})

    }

    return namesAges, nil

}


查看完整回答
反對 回復 2022-08-15
  • 1 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號