小编oct*_*ian的帖子

使用getOrElse返回默认值

在Scala中,我有一个哈希

var unigram = new HashMap[String, Int]
Run Code Online (Sandbox Code Playgroud)

我想从哈希中获取元素的值,或者如果元素不存在,我想得到0.

所以我想尝试这样使用getOrElse:

unigram("a") getOrElse 0
Run Code Online (Sandbox Code Playgroud)

但是,我得到: "Cannot resolve symbol."

我是如何错误地使用它的?我可以用什么代替呢?

scala

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

具有自定义排序的优先队列

我有这个案例类:

case class Offer(id: Int, amount: Int, interestRate: Double) extends Ordered[Offer] {

  def compare(that: Offer) = interestRate.compareTo(that.interestRate)
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我定义了基于Offer.interestRate. 我希望订单增加。

我创建了这些优惠:

Offer(1, 5, 4.0)
Offer(2, 5, 0.5)
Offer(3, 5, 1.5)
Run Code Online (Sandbox Code Playgroud)

并将它们添加到优先级队列中:

val currentOffers: mutable.PriorityQueue[Offer] = mutable.PriorityQueue.empty[Offer]
Run Code Online (Sandbox Code Playgroud)

问题是,当我这样做时,currentOffers.dequeue()我得到Offer(1, 5, 4.0).

相反,我想得到:

Offer(2, 5, 0.5)

我需要改变什么?

scala priority-queue

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

模式匹配数组

我有一个返回数组最小值的函数.

该函数有类型:

min : int array -> int
Run Code Online (Sandbox Code Playgroud)

它的实施是:

let rec min a = match a with
  | [] -> 1000000000
  | x :: [] -> x
  | x :: xs -> let ms = min xs in if x < ms then x else ms;;
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

Found min with unexpected type: 
Wrong type int list -> int.
Run Code Online (Sandbox Code Playgroud)

那么我如何模式匹配数组呢?

ocaml

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

在OCaml中打印元组

我想打印一个类型的方法的结果int * int.

我试过这样的:

printf "%d %d\n" (find (99, 10));;
Run Code Online (Sandbox Code Playgroud)

但是,我得到了:

Error: This expression has type int * int
       but an expression was expected of type int
Run Code Online (Sandbox Code Playgroud)

我在这里看了http://caml.inria.fr/pub/docs/manual-ocaml/libref/Printf.html但是没有提到元组.

那么打印元组的正确方法是什么?

ocaml

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

找不到参数超时的隐式值:akka.util.Timeout

我有以下代码,在Scala中提出询问请求:

someActorRef ? SomeMessage()
Run Code Online (Sandbox Code Playgroud)

但是,我收到此消息:

could not find implicit value for parameter timeout: akka.util.Timeout
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

Await.ready(someActorRef ? SomeMessage(), Duration("3 seconds")).asInstanceOf[String]
Run Code Online (Sandbox Code Playgroud)

但是我得到了同样的信息。

无论如何,我不想阻止。我想要一个Future,然后再给它onComplete回调。

我可以要求其他演员发信息而不加阻挡吗?

scala akka

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

使用 ssh 密钥连接到 Jenkins

我想使用 Jenkins CLI,为此,我认为我需要在我的计算机上生成 SSH 密钥对,并将该密钥对的公钥放入 Jenkins 服务器配置中。

我在我的机器上生成了一个 SSH 密钥,ssh-keygen -t rsa -b 4096 -C "my_email@example.com"并尝试将公钥提供给 Jenkins 服务器。

但是,如果我转到Jenkins -> Credentials -> System -> Global Credentials,唯一与 SSH 相关的选项是SSH Username with private key

难道它不应该要求 SSH 公钥而不是私钥吗?

我的假设有错误吗?

ssh jenkins

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

错误:没有用于初始化'set <int>的匹配构造函数

在C++中,我已经包含了set库:

#include <set>
Run Code Online (Sandbox Code Playgroud)

我想创建一个具有与另一个元素相同的元素的集合.所以,我试过这个:

set<int> ret((int)ring.size());
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

error: no matching constructor for initialization of 'set<int>'
Run Code Online (Sandbox Code Playgroud)

任何想法如何从声明中指定集合的​​大小?

c++ size constructor stl set

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

C内置malloc的隐式声明

我正在开发一个项目,其中我有一个标题,其定义listlist_elem结构很像实际的c库(列表的实现没有错误).我正在编写一个使用列表实现的源文件,并收到以下警告:

warning: implicit declaration of function ‘malloc’ [-Wimplicit-function-declaration]
Run Code Online (Sandbox Code Playgroud)

这是list_elem结构的声明

/* List element. */
struct list_elem 
  {
    struct list_elem *prev;     /* Previous list element. */
    struct list_elem *next;     /* Next list element. */
  };
Run Code Online (Sandbox Code Playgroud)

我在这里用的是:

//creates a list element
struct list_elem le_current;
&le_current = (struct list_elem *)malloc(sizeof(struct list_elem));
Run Code Online (Sandbox Code Playgroud)

我知道有同样问题的另一个问题,但与那个人不同,我确实包括了

#include <stdlib.h>
Run Code Online (Sandbox Code Playgroud)

以及定义列表的标题

#include "lib/kernel/list.h"
Run Code Online (Sandbox Code Playgroud)

c malloc struct list sizeof

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

在bash别名中使用管道

我没有shell脚本的经验,所以我无法看到以下情况的问题:

我已经定义了以下形式的别名(file.c位于~/dir):

alias code="cd ~/dir | vim file.c"
Run Code Online (Sandbox Code Playgroud)

输入时,我收到以下警告,并且没有打开正确的文件:

Vim: Warning: Input is not from a terminal
2 files to edit
Run Code Online (Sandbox Code Playgroud)

我认为这个实例中的管道操作符会将两个命令分开,首先更改目录,然后打开文件.

bash alias pipe

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

Rails - 在服务器启动之前执行任务

我希望我的应用程序在服务器启动之前执行任务(从其他网站下载CSV文件并解析它们).

我应该在哪个文件中放入代码?(也许db/seeds.rb?)

另外,有关如何使用RSpec进行测试的任何想法?

rspec ruby-on-rails

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

标签 统计

scala ×3

ocaml ×2

akka ×1

alias ×1

bash ×1

c ×1

c++ ×1

constructor ×1

jenkins ×1

list ×1

malloc ×1

pipe ×1

priority-queue ×1

rspec ×1

ruby-on-rails ×1

set ×1

size ×1

sizeof ×1

ssh ×1

stl ×1

struct ×1