看文档的时候产生的疑问,如一个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也不能传。

转载于:https://www.cnblogs.com/ranyonsue/p/10411351.html

函数参数中的中括号代表什么相关推荐

  1. Python函数参数中的冒号与箭头

    在一些Python的工程项目中,我们会看到函数参数中会有冒号,有的函数后面会跟着一个箭头,你可能会疑惑,这些都是什么东西? 其实函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型.函数 ...

  2. python函数定义中参数列表里的参数是_python函数参数中的/和*是什么意思?

    在python3.8之后函数参数中允许出现/和*号,/用来指明某些函数形参必须使用位置参数而非关键字参数的形式,*出现在函数参数中第一种含义可以表示为可变参数,一般写作*args:对于单独出现在参数中 ...

  3. 函数参数中带省略号的用法

     [转]函数参数中带省略号的用法 本文摘自CDSN<可变参数学习笔记>,原帖链接:http://topic.csdn.net/t/20041124/09/3582660.html 前言 ...

  4. C++中WINAPI函数参数中的IN和OUT

    在C++API函数参数中的in和out其实是一个宏,其中,in这个变量或参数是输入值,即要求必须给这个变量填写好以后提交给某个函数去执行. out这个变量的意思是输出值,即你不需要预先给它赋值,当函数 ...

  5. C++:在函数参数中使用++与--运算符

    C++:在函数参数中使用++与–运算符 进行C++的学习有一段时间了,今天做练习的时候遇到了一个在函数参数中使用带有++运算符表达式的问题,稍微研究了一下发现用到的知识点还不少,挺有意思的,这里正好进 ...

  6. 函数参数中的3个点表示什么

    转载于网友的一片文章,写的很好! 标准库提供的一些参数的数目可以有变化的函数.例如我们很熟悉的printf,它需要有一个格式串,还应根据需要为它提供任意多个"其他参数".这种函数被 ...

  7. 关于cmp函数参数中的符号(转)

    原文链接:https://blog.csdn.net/qie_wei/article/details/81135920 关于sort函数中的cmp函数有着不同的写法,以刚刚的整形元素比较为例 还有人是 ...

  8. C函数参数中的三个点

    原文链接一:http://hi.baidu.com/wjun520/blog/item/1678a11da07fe68086d6b653.html C++中有函数重载这种方法,以供我们调用时要可以不确 ...

  9. java中3|4_关于java:函数参数中3个点的含义是什么?

    本问题已经有最佳答案,请猛点这里访问. 我在读Android文档中的AsyncTask. private class DownloadFilesTask extends AsyncTask { pro ...

  10. python教程:函数参数中默认值及重要警告

    最有用的形式是对一个或多个参数指定一个默认值.这样创建的函数,可以用比定义时允许的更少的参数调用,比如: def ask_ok(prompt, retries=4, reminder='Please ...

最新文章

  1. 皮一皮:也许是全国最敬业的体育老师...
  2. C# 8 新特性 - 静态本地方法
  3. python函数复用_【python学习-4】可复用函数与模块
  4. linux自动归档,Linux之归档、压缩
  5. Mac下安装Flink的local模式(flink-1.0.2)
  6. wns服务器没有响应,如何使用 Windows 推送通知服务 (WNS) 进行验证(Windows 运行时应用)...
  7. 知识蒸馏 | 综述: 网络结构搜索应用
  8. 魔域私服怎么老服务器中断,魔域私服技术文章-服务器端比较正确的数据库解释文件...
  9. Windows Server 2008 R2的DHCP高可用
  10. 永恒之蓝漏洞复现(包括常见问题处理)和修复方案
  11. 组态软件实现RFID设备数据采集
  12. plc编程语言是c语言吗,PLC各种编程语言特点你了解多少?
  13. 恒生电子:主推2条联盟链,但链上交易至今不到30笔 |追击上市公司
  14. 网络环路导致公司网络瘫痪问题排查
  15. 99% 的程序员想不到的一个技巧,绝对让领导眼前一亮,好感倍增!
  16. 【C语言实现井字棋及电脑落子优化】
  17. BootStrap Table的JS封装
  18. R语言Duncan检验
  19. 元宇宙游戏项目:Decentraland(治理通证:MANA)
  20. 杜邦分析法拆解三种商业模式

热门文章

  1. 基于bootstrap table配置的二次封装
  2. ACM-ICPC 2017 Asia Xi'an A XOR (线性基+线段树思想)
  3. appium问题解决
  4. [NOI 2010]超级钢琴
  5. 【Vegas原创】ctrl shift无法切换输入法的解决方法
  6. Visual C# 2008+SQL Server 2005 数据库与网络开发――3.1.2 C# 2005和2008之间的关系
  7. 正则表达式30分钟入门教程[轉]
  8. POJ2083-Fractal
  9. Zend Studio主题的设置
  10. 【知识碎片】JavaScript篇