鍍金池/ 問(wèn)答/HTML/ 菜鳥教程中node語(yǔ)法寫法的疑問(wèn),為什么語(yǔ)法中要加中括號(hào)?

菜鳥教程中node語(yǔ)法寫法的疑問(wèn),為什么語(yǔ)法中要加中括號(hào)?

Node緩沖區(qū)拷貝語(yǔ)法為:

buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])

接下來(lái)舉例寫的代碼都是這樣的:

var buf1 = Buffer.from('abcdefghijkl');
var buf2 = Buffer.from('RUNOOB');
//將 buf2 插入到 buf1 指定位置上
buf2.copy(buf1, 2);
console.log(buf1.toString());

我看語(yǔ)法中用到了中括號(hào),可是實(shí)際寫的時(shí)候也沒有加中括號(hào),為什么語(yǔ)法中會(huì)出現(xiàn)中括號(hào),還是因?yàn)檫@是一種約定成俗的規(guī)則呢?

自己也試著嘗試了一下,我看也不用加中括號(hào)

var buf1 = Buffer.from("abcdefghijklmnopqrstuvwxyz");
var buf2 = Buffer.from("123456789");
buf2.copy(buf1 , 2 , 3 , 4);
console.log(buf1.toString());//ab4defghijklmnopqrstuvwxyz

謝謝大家的解答!^ ^

回答
編輯回答
未命名

雖然不怎么會(huì)Node,但我知道大部分的文檔這么寫都意味著后面是可選參數(shù)。
中括號(hào)的意思就是里面的內(nèi)容不是必須的

2018年6月7日 13:53
編輯回答
失魂人

謝邀!
帶有中括號(hào)的參數(shù),表示這些是可選參數(shù),可以有,也可以沒有!目的讓你一目了然共有那些參數(shù),其中那些參數(shù)必選,那些參數(shù)可選!

2017年10月25日 09:46
編輯回答
任她鬧

這個(gè)是介紹語(yǔ)法時(shí)提示可選參數(shù),就拿

buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])

它代表著有
buf.copy(targetBuffer)——完整拷貝緩沖區(qū)到目標(biāo)區(qū)域,且覆蓋目標(biāo)區(qū)域從頭開始的位置

buf.copy(targetBuffer, targetStart)——完整拷貝緩沖區(qū)到 目標(biāo)緩沖區(qū)targetStart開始的位置

buf.copy(targetBuffer, targetStart, sourceStart)—— 從源緩沖區(qū)sourceStart開始的位置拷貝數(shù)據(jù)到 目標(biāo)緩沖區(qū)targetStart開始的位置

buf.copy(targetBuffer, targetStart, sourceStart, sourceEnd)——從源緩沖區(qū)拷貝sourceStartsourceEnd 間的數(shù)據(jù) 到 目標(biāo)緩沖區(qū)targetStart開始的位置
等4種用法,其中:
targetBuffer——目標(biāo)緩沖區(qū)
targetStart ——目標(biāo)緩沖區(qū)被覆蓋起始位置
sourceStart ——源緩沖區(qū)拷貝起始位置
sourceEnd ——源緩沖區(qū)拷貝結(jié)束位置


你自己后來(lái)測(cè)試舉例比較少,沒有真正了解這些用法的目的,對(duì)于諸如壓縮/解壓縮,或者加密/解密等等算法或者其他一些復(fù)雜的算法實(shí)現(xiàn)中,就會(huì)用到后面的功效。

2017年6月28日 19:10