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

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

是什么意思時(shí)直接在切片后?

是什么意思時(shí)直接在切片后?

Go
qq_花開花謝_0 2022-01-17 10:26:51
在這種情況下,Go 中的含義是什么...?ids = append(ids[:index], ids[index+1:]...)關(guān)于什么......在某些情況下意味著什么,但我不明白在上述情況下它意味著什么。
查看完整描述

2 回答

?
慕沐林林

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

某些語言(C、Python、...)接受可變參數(shù)?;旧?,您允許函數(shù)的客戶端傳遞多個(gè)參數(shù),而無需指定多少。由于該函數(shù)仍需要以一種或另一種方式處理這些參數(shù),因此它們通常被轉(zhuǎn)換為某種集合。例如,在 Python 中:


def foo(x, *args): # * is used for variadic arguments

    return len(args)


>>> foo(1)  # Passed the required argument, but no varargs

>>> foo(1, 2, 3)  # Passed the required, plus two variadic arguments

2

>>> foo(1, 2, 3, 4, 5, 6) # required + 5 args, etc...

5

現(xiàn)在這種方法的一個(gè)明顯問題是,就類型而言,許多參數(shù)是一個(gè)相當(dāng)模糊的概念。C 使用指針,Python 一開始并不真正關(guān)心類型,Go 決定將其限制在特定情況下:傳遞給定類型的切片。


這很好,因?yàn)樗岊愋拖到y(tǒng)做它的事情,同時(shí)仍然非常靈活(特別是,所討論的類型可以是一個(gè)接口,所以只要函數(shù)知道如何處理,你就可以傳遞不同的“實(shí)際類型”這些。


典型的例子是命令函數(shù),它執(zhí)行一個(gè)程序,傳遞一些參數(shù):


func Command(name string, arg ...string) *Cmd

這在這里很有意義,但請(qǐng)記住,可變參數(shù)只是傳遞 slices 的一種便捷方式。您可以擁有完全相同的 API:


func Command(name string, args []string) *Cmd

第一個(gè)的唯一優(yōu)點(diǎn)是它可以讓你不傳遞任何參數(shù),一個(gè)參數(shù),幾個(gè)......而不必自己構(gòu)建切片。


那你的問題呢?

有時(shí),您確實(shí)有一個(gè)切片,但需要調(diào)用一個(gè)可變參數(shù)函數(shù)。但如果你天真地這樣做:


my_args_slice := []string{"foo", "bar"}

cmd := Command("myprogram", my_args_slice)

編譯器會(huì)抱怨它需要字符串,但卻得到了一個(gè)切片!您要告訴它的是,它不必“在后面構(gòu)建切片”,因?yàn)槟呀?jīng)有了切片。您可以使用以下省略號(hào)來做到這一點(diǎn):


my_args_slice := []string{"foo", "bar"}

cmd := Command("myprogram", my_args_slice...) // <- Interpret that as strings

該append函數(shù)盡管是內(nèi)置的和特殊的,但遵循相同的規(guī)則。您可以將零個(gè)、一個(gè)或多個(gè)元素附加到切片。如果您想連接切片(即您已經(jīng)有一個(gè)“參數(shù)切片”),您同樣可以使用省略號(hào)使其直接使用它。


查看完整回答
反對(duì) 回復(fù) 2022-01-17
?
當(dāng)年話下

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

它解包切片。

ids[:index] 是一個(gè)簡(jiǎn)短的形式 ids[0:index]

ids[index+1:] 是一個(gè)簡(jiǎn)短的形式 ids[index+1:len(ids)-1]

所以,你的例子ids = append(ids[:index], ids[index+1:]...)轉(zhuǎn)化為

//pseudocode
ids = append(ids[0:index], ids[index+1], ids[index+2], ids[index+3], ..., ids[len(ids)-2], ids[len(ids)-1])



查看完整回答
反對(duì) 回復(fù) 2022-01-17
  • 2 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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