0

我正在尝试结合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);
};

它说的第二行,以及它后面的三行

返回 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 ',

是作为格式化字符串返回的第一个参数。它包含零个占位符。我对么?

我对下一部分有些迷茫,“符号”和“列”是否来自节点?我应该在脚本的其他地方搜索它们吗?我怀疑他们所做的是获取特定股票的符号并加入,将它们连接到不同的列。

我参考文档对代码的解释是否正确?

4

1 回答 1

0

Nodeutil.format()是一个可变参数函数——它接受可变数量的参数。

文档指定第一个参数是包含零个或多个特殊占位符的字符串模板。其余参数基本上被视为一个数组,字符串模板中的占位符用这些值填充,并返回结果字符串。

示例中的字符串 -http://finance.yahoo.com/d/quotes.csv?s=%s&f=%s包含两个占位符 - 都%s在字符串的末尾附近。在给出的代码中,第一个占位符被替换为 的值,symbols.join('+')第二个被替换为 的值columns

join()是 Array 上的内置 JavaScript 方法,它生成一个 String,该 String 由toString()Array 的每个元素的值组成,默认情况下用逗号分隔,或提供的 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 - 为您提供包含 GOOG(Google 的股票代码)的一组不同值的 CSV。

http://finance.yahoo.com/d/quotes.csv?s=GOOG+AAPL+MSFT&f=sp - 为您提供仅包含 Google、Apple 和 Microsoft 股票代码和每股价格的 CSV。

于 2013-06-28T17:39:53.577 回答