小编kar*_*oss的帖子

在Eclipse IDE中查看变量内容

如何同时观察多个变量(例如TreeSet)的内容?我可以观看一个TreeSet的内容,在"Variables"窗口中单击它,但我不知道如何为几个变量做到这一点.

java eclipse debugging

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

为什么c ++ 11随机分布是可变的?

我认为c ++ 11随机分布(uniform_int_distribution例如)生成的值仅取决于传递给它的生成器的状态operator().但是,由于某些原因const,签名中没有说明符operator().这是什么意思,我应该如何将分布作为函数参数传递?我认为我必须将它作为任何非相互参数传递:通过const引用,但现在我不确定.

c++ random c++11

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

为什么Java中没有Hashable接口

Object在Java中有hashCode方法,但它只在像HashSet或的关联容器中使用HashMap.它为什么这样设计?Hashable具有hashCode方法的界面看起来更优雅的解决方案.

java interface hashcode

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

在 Rust 堆上创建固定大小的数组

我尝试使用以下代码:

fn main() {
    let array = box [1, 2, 3];
}
Run Code Online (Sandbox Code Playgroud)

,在我的程序中,它会导致编译错误:error: obsolete syntax: ~[T] is no longer a type

AFAIU,Rust 中没有动态大小的数组(大小必须在编译时知道)。然而,在我的代码片段中,数组确实具有静态大小,并且应该是类型~[T, ..3](拥有大小为 3 的静态数组),而编译器说它具有类型~[T]。是否有任何深层原因导致无法在堆上分配静态大小的数组?

PS 是的,我听说过Vec

rust

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

使用Webdriver确定页面是否已更改

有时网页的可见内容取决于页面输入元素状态(例如,输入元素"选择您的大学"可能仅在您在"作业"字段中选择"学生"后)或单击某些页面元素(如下拉菜单)时才会显示纽扣).我正在尝试使用Selenium Webdriver自动查找这些页面元素依赖项的过程.第一个想法是在文本输入字段中输入一些内容,设置选中/取消选中的复选框,单击某些按钮/链接等,然后查看页面上是否有任何元素出现/消失.问题是:

  • 有没有一种简单的方法可以找出页面上是否出现过某些内容?好吧,我可以在每次更改后制作一个从网页元素到{'可见','隐形'}状态的地图,并找出是否有变化,但有没有为此目的内置的内容?

  • 单击某些按钮可能会导致加载另一个页面,我想继续使用我正在测试的页面,有没有办法确定click()方法是否会导致加载另一个页面并阻止它?

java selenium webdriver

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

更改非正数除法的python数学模块行为

在c ++和python编程语言中,非正数除法是完全不同的:

//c++:
11 / 3 = 3
11 % 3 = 2
(-11) / 3 = -3
(-11) % 3 = -2
11 / (-3) = -3
11 % (-3) = 2
(-11) / (-3) = 3
(-11) % (-3) = -2
Run Code Online (Sandbox Code Playgroud)

所以,正如你所看到的,c ++正在最小化商.但是,python的行为如下:

#python
11 / 3 = 3
11 % 3 = 2
(-11) / 3 = -4
(-11) % 3 = 1
11 / (-3) = -4
11 % (-3) = -1
(-11) / (-3) = …
Run Code Online (Sandbox Code Playgroud)

c++ python integer-division

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

有没有标准库类似物:

在编写一些算法问题时,我已经使用了这些函数,我想知道是否有任何标准库类似物实现它们的功能:

将函数列表映射到一个值:

mapX :: a -> [a -> b] -> [b]
mapX _ [] = []
mapX x (f:fs) = [f x] ++ (mapX x fs)
Run Code Online (Sandbox Code Playgroud)

将二进制函数映射到两个列表:

map2 :: (a -> b -> c) -> [a] -> [b] -> [c]
map2 _ [] [] = []
map2 f (ax:axs) (bx:bxs) = [f ax bx] ++ map2 f axs bxs
Run Code Online (Sandbox Code Playgroud)

对我来说,有点奇怪all [] == True:(

all' :: (a -> Bool) -> [a] -> Bool
all' _ [] = False
all' …
Run Code Online (Sandbox Code Playgroud)

haskell

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

Haskell - 添加类型类?

请考虑以下示例:

data Dot = Dot Double Double
data Vector = Vector Double Double
Run Code Online (Sandbox Code Playgroud)

首先,我想重载+运算符Vector.如果我想重载equality(==)运算符,我会写它像:

instance Eq Vector where ...blahblahblah
Run Code Online (Sandbox Code Playgroud)

但我无法找到是否有Add类型类使Vector行为类似于带有加法运算的类型.我甚至找不到Haskell类型类的完整列表,我只知道很少来自不同的教程.这样的清单是否存在?

另外,我可以重载+运营商添加VectorDot(它似乎相当合理的,不是吗?).

haskell operator-overloading typeclass

4
推荐指数
3
解决办法
4247
查看次数

使用随机数据进行单元测试

我已经读过在单元测试中生成随机数据通常是一个坏主意(我明白为什么),但是对随机数据进行测试,然后从随机测试中构建一个固定的单元测试用例,发现了错误.但是我不明白如何很好地组织它.我的问题实际上与特定的编程语言或特定的单元测试框架无关,所以我将使用python和一些伪单元测试框架.以下是我对编码的看法:

def random_test_cases():
   datasets = [
       dataset1,
       dataset2,
       ...
       datasetn
   ]
   for dataset in datasets:
       assertTrue(...)
       assertEquals(...)
       assertRaises(...)
       # and so on
Run Code Online (Sandbox Code Playgroud)

问题是:当这个测试用例失败时,我无法弄清楚哪个数据集导致失败.我看到两种解决方法:

  1. 为每个数据集创建一个测试用例 - 问题是加载测试用例和代码重复.
  2. 通常测试框架允许我们传递消息来断言函数(在我的例子中我可以做类似的事情assertTrue(..., message = str(dataset))).问题是我应该将这样的消息传递给每个断言,这看起来也不像优雅.

有没有更简单的方法呢?

testing tdd unit-testing

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