为什么节点文档在描述这个函数时会在逗号之前列出这个左括号?fs.createReadStream(path[, options]) fs.createWriteStream(path[, options])翻译成这样: fs.readFile('/etc/passwd', 'utf-8', callback());那么他们为什么要像这样 fs.createReadStream(path**[,** options]) 而不是这样 fs.createReadStream(path, [options])我在这里错过了什么吗?
3 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
当您在文档中看到这样的内容时:
fs.createReadStream(path[, options])
这意味着该options
参数是可选的。它不需要通过。因此,您可以fs.createReadStream()
通过以下两种方式之一:
fs.createReadStream(somePath)
或者
fs.createReadStream(somePath, {flags: "r"});
方括号[]
是参数是可选的文档约定,因为参数是可选的,所以它的逗号也是可选的。这就是为什么逗号包含在括号内的原因。逗号是可选部分的一部分。
九州编程
TA贡献1785条经验 获得超4个赞
两者之间有区别:
fs.createReadStream(path[, options])
和
fs.createReadStream(path, [options])
第一个意味着如果你不传递选项,那么你就不用逗号。这意味着以下内容是有效的:
fs.createReadStream(path); fs.createReadStream(path, 'utf-8');
第二个意思是,如果您不传递选项,则不能省略逗号。这意味着以下内容是有效的:
fs.createReadStream(path,); // <---------------- NOTE THE COMMA fs.createReadStream(path, 'utf-8');
显然这是错误的。因此,文档正确地将可选符号放在[]
逗号周围。
这个约定来自于 unix 手册(手册)页面的悠久传统。
跃然一笑
TA贡献1826条经验 获得超6个赞
这是一个约定,表示 options 参数是可选的。两个调用都有效:
fs.createReadStream(onlyPath); fs.createReadStream(somePath, someOptions);
添加回答
举报
0/150
提交
取消