小编MxL*_*evs的帖子

仅当Ruby中的所有值都为true时返回true

验证可枚举的所有元素是否满足某个条件的快速方法是什么?我在逻辑上猜它会是这样的:

elements = [e1, e2, e3, ...]
return (condition on e1) && (condition on e2) && (condition on e3) && ...
Run Code Online (Sandbox Code Playgroud)

例如,如果我有一个整数数组,我想回答"是否所有整数都是奇数?"的问题.

我总是可以迭代每个值,检查它是否为真,然后当其中一个返回false时返回false,但是有更好的方法吗?

ruby

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

从数组中选择随机元素并将其删除

我想从数组中选择一个随机元素,将其从数组中删除,然后返回该元素.

我可以sample用来获取一个元素,index找到它的位置,然后delete_at删除它,但是有更好的方法吗?

ruby

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

读取3个字节作为整数

如何读取3个字节作为整数?

struct module是否提供类似的东西?

我可以读取3个字节并添加一个额外的\ x00,然后将其解释为4字节整数,但这似乎是不必要的.

python

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

Ruby:将数组转换为哈希时注入问题

a = [[1, 'a'],[2, 'b'],[3, 'c'], [4, 'd']]
a.inject({}) {|r, val| r[val[0]] = val[1]}

当我运行它时,我得到一个索引错误

当我将块更改为

a.inject({}) {|r, val| r[val[0]] = val[1]; r}

它然后工作.

ruby如何处理第一次注射尝试没有得到我想要的?
有一个更好的方法吗?

ruby

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

计算n字节对齐所需的填充

假设我有一个数据集合(例如:字符串)必须存储在填充的二进制文件中,以便每个字符串,例如,4字节对齐.

因此,如果我有一个长度为11的字符串,它将填充到12(使用空字节).
如果我有一个长度为24的字符串,则不需要填充.
如果我的字符串长度为6,则会填充为8个字节.

如何计算单个表达式中所需的填充量?

我试过4 - (string_length % 4)但是当我的字符串长度是4的倍数时它失败了.

math

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

Ruby:检查字符串是否可以转换为整数

可能重复:
使用Ruby测试字符串是否基本上是引号中的整数?

"1"
"one"

第一个字符串是一个数字,我可以说to_i得到一个整数.
第二个字符串也是一个数字,但我不能直接调用to_i来获得所需的数字.

如何检查是否可以使用to_i成功转换?

ruby

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

windows batch file:在另一个目录中调用可执行文件

这似乎很简单,但我似乎无法得到它.我有一个名为"test"的目录,其中包含一个可执行的hello.exe,它基本上可以在屏幕上打印"hello".

我想使用相对路径从当前目录执行此程序.所以我写

test\hello.exe

认为它将执行位于"test"目录中的程序"hello.exe".但事实并非如此.我错过了什么吗?

batch-file windows-vista

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

计算两个值的平均值,最大限度地减少错误

我正在进行一些浮点计算,结果并不像我希望的那样准确.

这是算法:

...
center = (max_x + min_x) / 2
distance = old_x - center
new_x = center + (distance * factor)

return new_x

min_x,max_x和old_x都是浮点数.我相信当我取最大值和最小值的平均值时会引入最大误差,然后将误差乘以因子(可以是浮点数).

如何最小化FP计算引起的误差,以便new_x尽可能精确?

algorithm floating-point numerical-analysis

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

用于Windows的简单C++编译器

我以为我会用C++而不是一些解释性的语言写一些东西(因为我需要简单的表现)然后去尝试不同的工具.

首先我发现cygwin因为它有g ++,但它需要cygwin.dll来运行exe.

然后我尝试了mingw,但似乎我需要在libgcc和libgstd之类的内容中包含一些dll,这会使可执行文件膨胀到大约MB(我真的不需要那么多字节来做简单文件I/O )

然后我查看了Visual C++ 2010,因为我已经安装了它,但看起来我需要安装2008只是为了使用.net framework 3.5.好吧,我不介意使用4.0,但我想有很多人在他们的Windows机器上没有4.0,读取文件会很不方便.

我可以使用什么来让我传递小exe(例如:几KB的价值)来执行在大多数Windows机器上运行的简单的一次性操作?(因为它只与windows用户有关)

或者我应该只使用C并使用gcc进行mingw?

c++

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

懒惰(ungreedy)使用正则表达式匹配多个组

我想获取<tag></tag>标签对之间的任何值的内容.

<tag>
This is one block of text
</tag>

<tag>
This is another one
</tag>
Run Code Online (Sandbox Code Playgroud)

我想出的正则表达式是

/<tag>(.*)</tag>/m

虽然,它似乎是贪婪的,并且在括号内捕捉所有内容直到最后</tag>.我希望它尽可能地懒惰,以便每当它看到一个结束标记时,它会将其视为匹配组并重新开始.

如何编写正则表达式以便在给定方案中能够获得多个匹配?

我在以下链接中包含了我所描述的示例

http://rubular.com/r/JW5M3rnqIE

注意:这不是XML,也不是基于任何现有的标准格式.我不需要任何复杂的东西,比如一个带有漂亮解析器的完整库.

php ruby java regex perl

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