小编Mar*_*mon的帖子

Scala默认设置实现

我可以从Scala文档中看到scala.collection.immutable.Set只是一个特征.默认情况下使用Set实现中的哪一个?HashSet或TreeSet(或其他)?

我想知道/计划某些功能的运行时间.

例:

 scala> val s = Set(1,3,6,2,7,1)
 res0: scala.collection.immutable.Set[Int] = Set(1, 6, 2, 7, 3)
Run Code Online (Sandbox Code Playgroud)
  • 什么是s.find(5),O(1)或O(log(n))的运行时间?

  • 既然同样适用于Map,那么解决这个问题的最佳方法是什么?

scala

10
推荐指数
1
解决办法
3006
查看次数

带引号的文件内容的命令行参数

我有一个包含命令行参数的文件,我想传递给另一个脚本.

但是这个文件包含诸如的元素"param 1" param2 param3.

让我们用参数test.tmp和脚本文件调用该文件script.sh.

如果我做:

script.sh -p `cat test.tmp` -other_params 1 2 3
Run Code Online (Sandbox Code Playgroud)

script.sh之后接受p:

  1. "param
  2. 1"
  3. param2
  4. param3

但我想:

  1. param 1
  2. param2
  3. param3

任何的想法?

精度小:假设script.sh不可修改.解决方案必须在shell中进行.

bash shell

5
推荐指数
2
解决办法
141
查看次数

camlp4语法扩展,解析器错误

我创建了一个语法扩展,允许将类型定义为

type.yjson type_name {
  /* type_declaration */
}
Run Code Online (Sandbox Code Playgroud)

能够直接从json文件构建记录值.语法扩展插入模块和执行此操作所必需的功能.直到这里,没问题.语法扩展正是我想要的.

如果我想在我的代码中的其他地方使用"yjson"(即:函数参数),我就会遇到一些问题.

这是我尝试过的:

EXTEND Gram
str_item:
    [
      [ KEYWORD "type"; KEYWORD "."; "yjson"; tdl_raw = type_declaration ->
Run Code Online (Sandbox Code Playgroud)

这里是我使用"yjson"作为函数参数时得到的错误

[fun_binding] expected after [ipatt] (in [let_binding])
Run Code Online (Sandbox Code Playgroud)

我真的不明白这里发生了什么.似乎规则不匹配,为什么我会得到一个解析错误?

ocaml camlp4

4
推荐指数
1
解决办法
507
查看次数

不考虑 Postgres 部分索引

我有一个大约有 2 亿行的表。在那张桌子上,我有一个标志deprecated(布尔值)和一个date_time(时间戳)。

我的表中充满了已弃用的值。目前,我有 2 亿的 3 个值尚未弃用。

所以我尝试在已弃用的标志上添加部分索引,但 postgres 没有考虑它并继续进行 Seq 扫描。

以下是索引的创建方式:

CREATE INDEX api_kpi_date_time_idx ON public.api_kpi USING btree (date_time) WHERE (deprecated = false)
Run Code Online (Sandbox Code Playgroud)

我尝试运行解释:

explain select ak.id from api_kpi ak
where ak.deprecated is false and date_time < now() 
Run Code Online (Sandbox Code Playgroud)

我得到以下信息:

Seq Scan on api_kpi ak  (cost=0.00..10208288.72 rows=80594624 width=37)
  Filter: ((deprecated IS FALSE) AND (date_time < now()))
Run Code Online (Sandbox Code Playgroud)

查询运行大约需要 5 分钟。

我需要做什么才能确保 Postgres 考虑索引并且仅对索引中的子集进行日期比较?

postgresql indexing

2
推荐指数
1
解决办法
57
查看次数

标签 统计

bash ×1

camlp4 ×1

indexing ×1

ocaml ×1

postgresql ×1

scala ×1

shell ×1