我正在尝试与http://nodejs.org/api/util.html一起理解代码,这是我对下面显示的代码的理解
var util = require('util');
包含util模块。
这对下面的代码有一些影响,
var financeurl = function(symbols, columns) {
return util.format(
'http://finance.yahoo.com/d/quotes.csv?s=%s&f=%s',
symbols.join('+'),
columns);
};
它所说的第二行,以及它后面的三行
return util.format
节点文档说,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~
util.format(格式,[...])#
使用第一个参数作为类似printf的格式返回格式化字符串。
第一个参数是包含零个或多个占位符的字符串。每个占位符都替换为其相应参数的转换值。支持的占位符是:
%s - String.
%d - Number (both integer and float).
%j - JSON.
% - single percent sign ('%'). This does not consume an argument.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~
'http://finance.yahoo.com/d/quotes.csv?s=%s&f=%s',
是第一个以格式化字符串形式返回的参数。它包含零占位符。我是对的吗?
我对下一部分感到有些迷茫,'符号'和'列'来自节点?我应该在脚本中搜索其他地方吗?我怀疑他们做的是采用特定股票的符号并加入,将它们连接到不同的列。
我对代码的解释参考文档是否正确?
答案 0 :(得分:0)
节点的util.format()
是Variadic function - 它需要可变数量的参数。
文档指定第一个参数是包含零个或多个特殊占位符的字符串模板。其余的参数基本上被视为一个数组,字符串模板中的占位符用这些值填充,并返回结果字符串。
示例中的字符串 - http://finance.yahoo.com/d/quotes.csv?s=%s&f=%s
包含两个占位符 - 字符串末尾附近的%s
。在给定的代码中,第一个占位符替换为symbols.join('+')
的值,第二个占位符替换为columns
的值。
(join()
是Array上内置的JavaScript方法,它生成一个字符串,该字符串由Array的每个元素的toString()
值组成,默认情况下用逗号分隔,或者提供的String参数(' +'在这种情况下)。)
symbols
和columns
不是来自Node - 它们是程序中其他位置提供的变量。您猜测symbols
包含您要查询Yahoo Finance服务的股票代码符号是正确的,但columns
实际上指定了您希望从服务返回的数据列。 (您可以为columns
提供的值及其含义在评论的程序顶部描述。至于我如何知道这一点......我也参加了启动工程课程......: D)
您基本上是针对Yahoo Finance REST服务的请求构建了一个URL - 您可以自己使用它,通过插入该字符串模板中的值来查看该程序从中获取的内容 -
http://finance.yahoo.com/d/quotes.csv?s=GOOG&f=snj1pr - 为您提供CSV,其中包含一系列不同的值 - Google的股票代码。
http://finance.yahoo.com/d/quotes.csv?s=GOOG+AAPL+MSFT&f=sp - 为您提供仅包含股票代码符号以及Google,Apple和Microsoft的每股价格的CSV。