通過切片創建新的切片
切片之所以被稱為切片,是因為創建一個新的切片,也就是把底層數組切出一部分。通過切片創建新切片的語法如下:
slice[i:j]
slice[i:j:k]
其中 i 表示從 slice 的第幾個元素開始切,j 控制切片的長度(j-i),k 控制切片的容量(k-i),如果沒有給定 k,則表示切到底層數組的最尾部。下面是幾種常見的簡寫形式:
slice[i:] // 從 i 切到最尾部
slice[:j] // 從最開頭切到 j(不包含 j)
slice[:] // 從頭切到尾,等價于復制整個 slice
讓我們通過下面的例子來理解通過切片創建新的切片的本質:
// 創建一個整型切片
// 其長度和容量都是 5 個元素
num := []int{1, 2, 3, 4, 5}
// 創建一個新切片
// 其長度為 2 個元素,容量為 4 個元素
myNum := slice[1:3]
執行上面的代碼后,我們有了兩個切片,它們共享同一段底層數組,但通過不同的切片會看到底層數組的不同部分:

注意:截取新切片時的原則是 "左含右不含"。所以 myNum 是從 num 的 index=1 處開始截取,截取到 index=3 的前一個元素,也就是不包index=3 這個元素。
所以,新的 myNum 是由 num 中的第2個元素、第3個元素組成的新的切片構,長度為 2,容量為 4。切片 num 能夠看到底層數組全部 5 個元素的容量,而 myNum 能看到的底層數組的容量只有 4 個元素。num 無法訪問到底層數組的第一個元素。所以,對 myNum 來說,那個元素就是不存在的。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
數據結構
+關注
關注
3文章
573瀏覽量
41584 -
數組
+關注
關注
1文章
420瀏覽量
27351 -
切片
+關注
關注
1文章
23瀏覽量
8625
發布評論請先 登錄
相關推薦
熱點推薦
Mapr報告的切片多于設備中存在的切片
我有一個完全放置和工作的設計 - 我在詳細的地圖報告中生成了模塊級利用率數據該設備是Virtex 6 lx75t,包含11,640個切片,但地圖上說我使用的是18016切片地圖后我如何擁有7000片
發表于 10-15 11:45
如何通過report_utiliztion獲得切片比率?
大家好,當我運行report_utilization時,我沒有獲得切片使用百分比,只有FF / LUT / BRAM / DSP /等。如何通過report_utiliztion獲得切片比率?謝謝
發表于 10-18 14:26
如何使用DSP切片設計?
嗨,我正在嘗試使用DSP切片的設計。但是,我發現在Virtex 6 FPGA中,還有一個額外的時序約束應用于DSP Slice(對于相同的vhdl輸入)。額外的時序約束是MINPERIOD約束,它
發表于 06-05 17:11
什么是網絡切片技術_網絡切片技術的應用
網絡切片技術就是把運營商的物理網絡切分成多個虛擬網絡,每個網絡適應不同的服務需求,這可以通過時延、帶寬、安全性、可靠性來劃分不同的網絡,以適應不同的場景。通過網絡切片技術在一個獨立的物
發表于 10-23 14:54
?1.8w次閱讀
新型高端電容切片制樣方式:氬離子研磨拋光/離子研磨CP
檢查、研究與判斷的根據。對于外層品質或者外觀不良,可以通過光學檢測儀或者目檢進行判定;但對于壓合后的內層或者孔的品質確認,則須要通過切片進行品質判定和對不良的原因作出初步分析。切片分析是進行電容失效分析的重要技術,
發表于 04-28 11:39
?4955次閱讀
網絡切片的分類 網絡切片粒度如何選擇
網絡切片是一種按需組網的方式,可以讓運營商在統一的基礎設施上分離出多個虛擬的端到端網絡,每個網絡切片從無線接入網承載網再到核心網上進行邏輯隔離,以適配各種各樣類型的應用。 網絡切片的分類 1、獨立
5G 網絡切片之OTN切片和FlexE切片區別
5G 網絡切片本質上是一個 E2E 概念,將用戶設備連接到租戶特定的應用程序。E2E 網絡切片由RAN 切片、核心切片和傳輸切片組成。每個網
發表于 01-04 11:56
?5925次閱讀
如何實現端到端網絡切片?
3GPP將網絡切片定義為5G 網絡的主要功能之一,網絡切片可看作是動態創建的邏輯端到端網絡。在深入研究網絡切片的概念之前,我們先簡單回顧下 5G 的三大應用場景。
發表于 06-15 17:56
?2236次閱讀
數組中如何增加切片的容量
切片擴容 相對于數組而言,使用切片的一個好處是:可以按需增加切片的容量。 Golang 內置的 append() 函數會處理增加長度時的所有操作細節。要使用 append() 函數,需
什么是5G切片技術,如何完成端到端的網絡切片
網絡切片是一種按需組網的方式,可以讓運營商在統一的基礎設施上切出多個虛擬的端到端網絡,每個網絡切片從無線接入網到承載網再到核心網在邏輯上隔離,適配各種類型的業務應用。在一個網絡切片內,至少包括無線子
發表于 10-13 12:22
?3327次閱讀
列表切片操作的特點
是1,可通過增加第三個參數實現不同切片 步長是-1時,可實現倒序切片 下標缺省時,表示從最"前"到最"后"(這里的前后要結合上下文來看,具體后面有示例) 例如,下面這些常規操作大家應該都很熟悉: 1lyst = list(ran
golang通過切片創建新的切片
評論