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

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

將切片轉(zhuǎn)換為元組的便捷功能?

將切片轉(zhuǎn)換為元組的便捷功能?

Go
森林海 2021-06-04 07:47:59
在 Python 中,可以編寫這樣的代碼,從列表中分配多個值:(a, b, c, d) = [1,2,3,4]是否有一組類似的用于切片的 Go 庫函數(shù)?也就是說,我可以這樣做:http : //play.golang.org/p/DY1Bi5omm1package mainfunc get3(s []interface{}) (    a interface{},    b interface{},    c interface{},    rest []interface{}) {  return s[0],s[1],s[2],s[4:]}func main() {    s := make([]interface{},5);  for i :=0 ; i < 5; i++ { s[i] = i}  a,b,c,_ := get3(s)  print(a.(int))  print(b.(int))  print(c.(int))}有沒有標(biāo)準(zhǔn)的 gophery 方法來做到這一點?有沒有辦法解決界面丑陋的問題?{}
查看完整描述

2 回答

?
GCT1015

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

我認(rèn)為你不能,至少不能以慣用/干凈的方式。您可以進(jìn)行多項分配,但您必須直接或使用閉包傳遞單個值:


package main


import (

  "fmt"

)


func valuesFromList(list[]int,startFrom int) func() int  {

  i:=startFrom

  return func() int {

    ret := list[i]

    i++

    return ret

  }

}



func main () {

  list := []int{0,1,2,3,4,5,6,7,8,9}

  yield := valuesFromList(list,5)


  //This works

  a,b,c := yield(),yield(),yield()

  fmt.Println(a)

  fmt.Println(b)

  fmt.Println(c)


  //This also works

  d,e,f := list[0],list[1],list[2]

  fmt.Println(d)

  fmt.Println(e)

  fmt.Println(f)

  //This won't work

  //g,h,i:= list[7:9]

}


查看完整回答
反對 回復(fù) 2021-06-28
  • 2 回答
  • 0 關(guān)注
  • 227 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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