编写一个简单的程序,使其能接收一个或者多个命令行参数,并且在终端(标准输出 stdout)中打印出这些参数的总和。
你可以通过 process
这个全局对象来获取命令行中的参数。process
对象 拥有一个名为 argv
的属性,该属性是一个数组,数组中包含了整条命令的所有部分。
首先,请先编写一个包含如下带简易代码的程序来熟悉一下:
console.log(process.argv)
通过执行命令 node program.js
并在后面多加几个参数,来运行我们的程序,比如:
$ node program.js 1 2 3
这样,你就会得到这样一个数组:
[ 'node', '/path/to/your/program.js', '1', '2', '3' ]
你需要考虑的问题是,如何去循环遍历这些代表数字的参数,从而得到他们的总和。process.argv
数组的第一个元素永远都会是 node
,并且第二个参数总是指向你的程序的路径,所以,你应该从第三个元素(index 是 2)开始,依次累加,直到数组末尾。
同时,你需要注意的是,所有 process.argv
中的数组的元素都是字符串类型的,因此,你需要将它们强制转换成数字。你可以通过加上 +
前缀,或者将其传给 Number()
来解决。例如: +process.argv[2]
或者 Number(process.argv[2])
。
learnyounode 会在你执行 learnyounode verify program.js
的时候提供参数给你的程序,所以你不需要自己去加参数了。如果仅仅只是想测试一下,而不想验证验证你的答案,你可以通过输入 learnyounode run program.js
来测试。当你使用 run
的时候,learnyounode 会进入它各个练习所准备的测试环境。