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

解鎖即可觀看《Go開發(fā)工程師》完整課程視頻

Go開發(fā)工程師

未來3-5年企業(yè)高性能項目不可替代的語言,從基礎到項目實戰(zhàn)再到重構,真正從入門到精通

【第1周】Go基礎知識入門
【第2周】容器,go編程思想
【第3周】Go并發(fā)編程和工程管理
【第4周】從0開始理解rpc和grpc
【第5周】grpc和protobuf進階
【第6周】 yapi文檔管理、gorm詳解
【第7周】gin快速入門
【第8周】用戶服務的grpc服務
【第9周】用戶服務的web服務
【第10周】服務注冊/發(fā)現(xiàn)、配置中心、負載均衡
【第11周】商品微服務的grpc服務
【第12周】 商品微服務的gin層和oss圖片服務
【第13周】庫存服務和分布式鎖
【第14周】訂單和購物車微服務
【第15周】 支付寶支付、用戶操作微服務、前后端聯(lián)調
【第16周】elasticsearch實現(xiàn)搜索微服務
【第17周】 分布式理論基礎、分布式事務解決方案
【第18周】 學習rocketmq實現(xiàn)冪等性機制等
【第19周】鏈路追蹤、限流、熔斷、降級
【第20周】api網(wǎng)關、部署
【第21周】開發(fā)規(guī)范和go基礎擴展
【第22周】設計模式和單元測試
【第23周】protoc插件開發(fā)、cobra命令行
【第24周】log日志包設計
【第25周】ast代碼生成工具開發(fā)
【第26周】三層代碼結構
【第27周】grpc服務封裝更方便的rpc服務
【第28周】深入grpc的服務注冊、負載均衡原理
【第29周】基于gin封裝api服務
【第30周】可觀測的終極解決方案
【第31周】系統(tǒng)監(jiān)控核心
【第32周】用戶、商品服務重構
【第33周】訂單、庫存等服務重構
【第33+周】訂單服務重構、wire進行ioc控制
【第34周】通過k8s部署服務
【第34+周】devops和k8s
章節(jié)
問答
課簽
筆記
評論
占位
占位

Go語言-切片的更多操作方法

    我們已經(jīng)知道,在進行“切片”操作的時候需要指定元素下界索引和元素上界索引,就像這樣:

numbers3[1:4]

    在有些時候,我們還可以在方括號中放入第三個正整數(shù),如下所示:

numbers3[1:4:4] 

    這第三個正整數(shù)被稱為容量上界索引。它的意義在于可以把作為結果的切片值的容量設置得更小。換句話說,它可以限制我們通過這個切片值對其底層數(shù)組中的更多元素的訪問。下面舉個例子。讓我們先來回顧下在上一節(jié)講到的numbers3slice1。針對它們的賦值語句是這樣的:

var numbers3 = [5]int{1, 2, 3, 4, 5}
var slice1 = numbers3[1:4]  

    這時,變量slice1的值是[]int{2, 3, 4}。但是我們可以通過如下操作將其長度延展得與其容量相同:

slice1 = slice1[:cap(slice1)]   

    通過此操作,變量slice1的值變?yōu)榱?code class="marker">[]int{2, 3, 4, 5},且其長度和容量均為4?,F(xiàn)在,numbers3的值中的索引值在[1,5)范圍內的元素都被體現(xiàn)在了slice1的值中。這是以numbers3的值是slice1的值的底層數(shù)組為前提的。這意味著,我們可以輕而易舉地通過切片值訪問其底層數(shù)組中對應索引值更大的更多元素。如果我們編寫的函數(shù)返回了這樣一個切片值,那么得到它的程序很可能會通過這種技巧訪問到本不應該暴露給它的元素。這是確確實實是一個安全隱患。
  
    如果我們在切片表達式中加入了第三個索引(即容量上界索引),如:

var slice1 = numbers3[1:4:4]   

    那么在這之后,無論我們怎樣做都無法通過slice1訪問到numbers3的值中的第五個元素。因為這超出了我們剛剛設定的slice1的容量。如果我們指定的元素上界索引或容量上界索引超出了被操作對象的容量,那么就會引發(fā)一個運行時恐慌(程序異常的一種),而不會有求值結果返回。因此,這是一個有力的訪問控制手段。
  
    雖然切片值在上述方面受到了其容量的限制,但是我們卻可以通過另外一種手段對其進行不受任何限制地擴展。這需要使用到內建函數(shù)append。append會對切片值進行擴展并返回一個新的切片值。使用方法如下:

slice1 = append(slice1, 6, 7)

    通過上述操作,slice1的值變?yōu)榱?code class="marker">[]int{2, 3, 4, 6, 7}。注意,一旦擴展操作超出了被操作的切片值的容量,那么該切片的底層數(shù)組就會被自動更換。這也使得通過設定容量上界索引來對其底層數(shù)組進行訪問控制的方法更加嚴謹了。
  
    我們要介紹的最后一種操作切片值的方法是“復制”。該操作的實施方法是調用copy函數(shù)。該函數(shù)接受兩個類型相同的切片值作為參數(shù),并會把第二個參數(shù)值中的元素復制到第一個參數(shù)值中的相應位置(索引值相同)上。這里有兩點需要注意:
  
  1. 這種復制遵循最小復制原則,即:被復制的元素的個數(shù)總是等于長度較短的那個參數(shù)值的長度。
  2. 與append函數(shù)不同,copy函數(shù)會直接對其第一個參數(shù)值進行修改。
  
      舉例如下:

var slice4 = []int{0, 0, 0, 0, 0, 0, 0}
copy(slice4, slice1)   

    通過上述復制操作,slice4會變?yōu)?code class="marker">[]int{2, 3, 4, 6, 7, 0, 0}。

任務

請在命令源碼文件index.go的第 8、9、13、17、18 和 19 行的圓括號中分別填入一個數(shù)字,使程序打印到標準輸出上的內容為:

true, true
true
true, true, true
?不會了怎么辦

應該分別填入24、70、811。計算方法請參見“知識要點”。

||

提問題

寫筆記

公開筆記
提交
||

請驗證,完成請求

由于請求次數(shù)過多,請先驗證,完成再次請求

加群二維碼

打開微信掃碼自動綁定

您還未綁定服務號

綁定后可得到

  • · 粉絲專屬優(yōu)惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問題答復提醒
  • · 賬號支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書簽

邀請您關注公眾號
關注后,及時獲悉本課程動態(tài)

舉報

0/150
提交
取消
全部 精華 我要發(fā)布
全部 我要發(fā)布
最熱 最新
只看我的

手記推薦

更多

本次提問將花費2個積分

你的積分不足,無法發(fā)表

為什么扣積分?

本次提問將花費2個積分

繼續(xù)發(fā)表請點擊 "確定"

為什么扣積分?