kdb q:'{因换行错误?

时间:2015-06-17 21:14:09

标签: kdb

我是新手,我正在尝试编写csv保存功能

CSVsave:{[filename;table]
    filename: $[-11h = type filename;filename;`$":", filename];
    @[hdel;filename;()];
    h: hopen filename;
    (neg h) csv 0: table;
    hclose h;
};

当我把它放入文件IO.q并执行

\l IO.q

我收到错误消息

k){0N!x y}
'{
@
"q"
"CSVsave:{[filename;table]\n    filename: $[-11h = type filename;filename;`$\..

但如果我删除新行并将所有内容放在一行

CSVsave:{[filename;table]     filename: $[-11h = type filename;filename;`$":", filename];    @[hdel;filename;()];    h: hopen filename;    (neg h) csv 0: table;    hclose h;};

运行良好。

我错过了一些明显的东西吗?

3 个答案:

答案 0 :(得分:6)

最后一个括号前的空格。

CSVsave:{[filename;table]
    filename: $[-11h = type filename;filename;`$":", filename];
    @[hdel;filename;()];
    h: hopen filename;
    (neg h) csv 0: table;
    hclose h; };

我还建议尝试使用kdb IDE。而不是必须不断节省负载。例如qStudio

答案 1 :(得分:1)

任何多行代码都需要在脚本中缩进。大多数人无论如何都要缩进他们的功能体,所以只注意到关闭支撑。如果您有像

这样的脚本
select ...
from ...
where ...

然后是"来自"和"其中"需要缩进。或者至少我上次尝试过它。

另外,我非常推荐kdb studio!我无法想象没有它的发展。

答案 2 :(得分:0)

几年前我花了一天时间,当我刚接触时,我想弄明白我做错了什么。答案是在结束大括号之前需要一个空格。它可以在自己的线上,但只需要一个空间。为什么?不知道。就是这样。

CSVsave:{[filename;table]
    filename: $[-11h = type filename;filename;`$":", filename];
    @[hdel;filename;()];
    h: hopen filename;
    (neg h) csv 0: table;
    hclose h;
 };