函數參數中的中括號代表什么


看文檔的時候產生的疑問,如一個node中的write方法:

buf.write(string[, offset[, length]][, encoding])

函數參數中的中括號代表什么了?怎么有些只有半個括號,比如string[ 或 offset[;而有的卻是length]][這樣了?

簡單的回答就是中括號表示這個參數非必須.

 

首先,這樣使用中括號只是出於一種的表達形式的需要而已(這樣的表達形式很常見),這與api本身是沒有關系的。

然后,我們拿上面的例子來說

buf.write(string[, offset[, length]][, encoding])

對於buf.write這個方法:

第一個參數string是必須的,他表示你要寫入的內容;往后的offset、length、encoding這些參數都是非必須的。這些參數你可以不傳(用[]括起來表示不傳),但並不表示這三個參數你想怎么傳就怎么傳的,這里是有規則的,規則從這里中括號的對應關系中可以看出來。我們來看他的對應關系:[, offset[, length]] && [ encoding]。這表示offset、length和encoding你可以傳或者不傳,但是你要是沒有傳offset的話那length是一定不能傳的,這就是為什么length要放在offset的括號里面的原因。

所以整個例子理解起來就是:

string必須傳,offset、length、encoding可傳可不傳,但是offset不傳的話length也不能傳。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM