0
A
回答
3
數組分片和剪接與範圍
範圍也可用於提取陣列的切片。有兩個點(3..6),範圍是包含的(
3, 4, 5, 6
);有三個點(3...6
),範圍不包括結尾(3, 4, 5
)。切片索引具有有用的默認值。省略的第一個索引默認爲零,省略的第二個索引默認爲數組大小。
說着array[..]
是簡寫:
len = array.length
array[0 .. len]
而只是使得array
淺拷貝。這意味着args = args[..]
只是使args
的本地淺表副本,以便args
可以在不更改傳入的原始數組的情況下進行操作和更改,並且您可以存儲對數組的引用,而函數的調用者無法通過原始args
傳遞給該函數的引用。
考慮該簡化的例子:
f = (args) -> args = args[..]
變成該JavaScript:
var f;
f = function(args) {
return args = args.slice(0);
};
而且Array#slice
:
返回一個陣列的一部分的淺表副本。
[...]
如果省略了end
,則片段提取到序列的末尾。
說着array.slice(n)
返回了從指數n
的array
淺拷貝和去的array
末因爲數組被索引從零開始,array.slice(0)
使得整個陣列的淺表副本。
相關問題
- 1. java args like linux args
- 2. python * args和** kwargs
- 3. $ $是否與$ broadcast(name,args)相反?
- 4. 如何檢查* args [0]是否存在?
- 5. event.Invoke(args)vs event(args)。哪個更快?
- 6. boost :: unordered_map.emplace(Args && ... args)如何工作?
- 7. golang通在args(串片)爲「ARGS ...接口{}」
- 8. main(String [] args)不同的String [] args = {.....}?
- 9. main(String args [])和main(String [] args)之間有區別嗎?
- 10. 拓寬VAR-ARGS與拳擊VAR-ARGS
- 11. Promise.try with args alternatives
- 12. Var args Autowire
- 13. result_of <F(Args...>和decltype <f(args...)>有什麼區別?
- 14. TCL錯誤:錯誤#ARGS:應該是 「PROC名ARGS體」
- 15. RedirectView的URL和可選ARGS
- 16. `Object obj(args ...)`和`Object obj {args ...}`有什麼區別?
- 17. Java編碼有關字符串ARGS []和字串[] args混亂
- 18. * args和** kwargs是什麼意思?
- 19. eclipse其中是args []存儲?
- 20. Java:Method.invoke(this,args)NullPointerException
- 21. Python TypeError with * args
- 22. 迭代* args?
- 23. Tkinter:return self.func(* args)
- 24. phonegap window.requestFileSystem args
- 25. 重載var-args
- 26. Var-args overloading
- 27. 沒有ARGS
- 28. return _cv.cvHaarDetectObjects(* args)
- 29. 測試構造ARGS
- 30. JAVA main with args