当函数与列同名时,怎么区分它们

在DolphinDB database中碰到了函数与列同名的情况,如下面代码:

trade = table(`SH600000`SH600001 as symbol,2019.11.07 2019.11.08 as date, 09:30:00.000 09:30:00.000 as time,30.0 32.0 as price,100 200 as volume)
def price(v){
    return v* 50.0
}
select  each(price,volume)  from trade 

price既是函数,又是trade的列名,执行时会报错:

Usage: each(func, args...). func must be a function definition.

我在计算时怎么让程序知道price是一个函数,而不是列名呢?

请先 登录 后评论

1 个回答

logger

当函数名和列名相同时,而且函数名作为参数传递,可以在函数名前加地址符&

select each(&price,volume) from trade

当然你的这个场景中,可以不必使用高阶函数each,直接使用

select price(volume) from trade

price函数本身就是一个向量化函数。

请先 登录 后评论
  • 1 关注
  • 0 收藏,948 浏览
  • jinzhi 提出于 2021-06-15 13:44

相似问题