小编Mr.*_*ama的帖子

字符串连接错误

我遇到了语法错误.我接受这是一个语法错误,但我有点好奇为什么它是一个语法错误.

这完全符合您的预期:

(0..9).each { |n| puts n.to_s + "^2 = " + (n**2).to_s }
Run Code Online (Sandbox Code Playgroud)

这会引发错误:

(0..9).each { |n| puts n.to_s +"^2 = "+ (n**2).to_s }
Run Code Online (Sandbox Code Playgroud)

错误:

NoMethodError: undefined method '+@' for "^2 = ":String
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我可以在任何地方移动第二个加号,Ruby似乎没有任何问题,但如果第一个碰巧触及双引号,我会收到语法错误.

为什么会发生这种情况?

ruby operators syntax-error

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

在Android中将对象引用保存到Bundle

是否可以保存对包中对象的引用?
不是整个对象,只是参考?

例如,Bundleclass有get一个对象的方法,但我找不到putset方法.

我需要它,因为在一个活动中,我创建了一个我的计时器类的实例,然后我启动计时器: myTimer.start()

如果我必须重新启动活动,我想将计时器恢复为之前的值.

java android

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

声明式函数命名

如何命名函数以清楚地反映它们遵循声明性范式

上下文:我最近开始致力于创建以声明方式工作的库,但我很难提出反映它的命名约定。过去,我创建了名称类似于 的命令式函数createThing,但我发现很难在函数名称中简洁地传达“做必要的事情以返回Thing看起来像 ____”的想法。
理想情况下,我想遵循正式的标准或既定的命名约定。否则,我希望至少从预先存在的代码库中找到一些指导。

language-agnostic declarative naming-conventions

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

使用Floyd-Warshall查找所有最短路径和距离

首先,一点背景:我正在努力构建一个简单的图形类,其中包含基本图形算法(Dijkstra,Floyd-Warshall,Bellman-Ford等),以用作即将到来的编程竞赛的参考表.

到目前为止,我有一个功能版本的Floyd-Warshall,但缺点是到目前为止它只能让我获得两个节点之间的最短距离值,而不是最短路径.我希望在算法本身内进行路径构建,而不是必须调用另一个函数来重构它.

以下是我正在使用的数据结构的一些信息:

vector< vector<int> > graph //contains the distance values from each node to each other node (graph[1][3] contains the length of the edge from node #1 to node #3, if no edge, the value is INF

vector< vector<int> > path //contains the "stepping stones" on how to reach a given node. path[st_node][end_node] contains the value of the next node on the way from end_node -> st_node

这是我正在使用的示例图数据:

INF 10  INF INF INF INF
INF …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm graph floyd-warshall

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

v$sql_plan_monitor - JOIN 估计非常不准确?

当谈到v$sql_plan_monitorOracle 11.2 上的表时,我遇到了一些奇怪的现象。

我有两张大小合适的桌子。一个有大约 2500 万行,另一个大约有 3500 万行,两者都是约 99% 的唯一性,只有少量的重复记录。

解释计划如下(表名代替隐私,表在解释计划之前收集了统计信息):

--------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                  | Name                 | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
--------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT           |                      |       |       | 65611 (100)|          |        |      |            |
|   1 |  SORT AGGREGATE            |                      |     1 |    34 |            |          |        |      |            |
|   2 |   PX COORDINATOR           |                      |       |       |            |          |        |      |            | …
Run Code Online (Sandbox Code Playgroud)

sql oracle performance oracle11g

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

使用while循环时Bash退出状态

我有一个bash脚本,它通过一个ip列表并逐个ping它们.如果每个ping的退出状态为0,则回显节点已启动,否则节点已关闭.我能够使其完美运行,但是当bash脚本结束时,退出状态始终为0.

我想要实现的是例如5个ip中的第3个如果第3个失败,继续通过列表并检查其余部分但是一旦脚本结束抛出除0以外的退出状态并输出哪个ip失败.

cat list.txt |  while read -r output
do
    ping -o -c 3 -t 3000 "$output" > /dev/null
    if [ $? -eq 0 ]; then
    echo "node $output is up"
    else
    echo "node $output is down"
    fi
done
Run Code Online (Sandbox Code Playgroud)

提前致谢!

linux bash loops ping

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

字符串修剪的两种常见正则表达式方法之间的Perl性能是什么?

所以我正在研究一个执行大量处理的Perl脚本(没有太复杂,但很多),并决定做一些基准来比较修剪字符串的两种常用方法.

第一种方法是快速单行:

$word =~ s/^\s+|\s+$//g;
Run Code Online (Sandbox Code Playgroud)

第二种方法有点长,但做同样的事情:

$word =~ s/^\s+//;
$word =~ s/\s+$//;
Run Code Online (Sandbox Code Playgroud)

对于我的基准测试,我从一个包含4000万行的文件中读取脚本,每个行都进行修剪(除此之外什么也没做).平均线长度小于20个字节.

第一种方法平均需要87秒才能完成.
第二种方法平均需要27秒才能完成.
不进行处理(只读线,继续)平均需要16秒.

第一种方法(第一次传递)将匹配所有前导或尾随空格,然后将其删除,然后匹配并删除另一侧的前导/尾随空格.
第二种方法匹配并删除所有前导空格,然后匹配并删除所有尾随空格.

也许我在这里错了,但为什么第二种方法比第一种方法快3倍?

regex perl

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

如何"偷看"正在运行但分离的屏幕?

我有一个脚本在分离的屏幕上在后台运行但不写入日志文件.(screen -dmS somename somescript)

当我检查脚本时,我附上它(screen -r somename)然后在我完成时分离(C-a d).

而不是附加然后分离,是否可以简单地"窥视"屏幕上的内容?
类似于echo "$(screen -r somename)"实际工作的东西?

linux ubuntu

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

如何将日期附加到bash中的字符串

我有一个备份我的Raspberry Pi的脚本

sudo dd bs=1M if=/dev/sda1 of=/home/pi/backup.img
zip -r /home/pi/backup/backup.zip /home/pi/backup.img
cp backup.zip ~/backup
Run Code Online (Sandbox Code Playgroud)

我想知道如何将日期附加到由第二行生成的backup.zip文件中.

有小费吗?

bash date raspberry-pi

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

为什么此循环返回的值为O(n log log n)而不是O(n log n)?

考虑以下C函数:

int fun1 (int n)
{
    int i, j, k, p, q = 0;

    for (i = 1; i<n; ++i)
    {
        p = 0;

        for (j=n; j>1; j=j/2)
            ++p;

        for (k=1; k<p; k=k*2)
            ++q;
    }
    return q;
}
Run Code Online (Sandbox Code Playgroud)

问题是要确定以下哪个最接近函数的返回值fun1

(A)n ^ 3
(B)n(logn)^ 2
(C)nlogn
(D)nlog(logn)

这是给出的解释:

int fun1 (int n)
{
    int i, j, k, p, q = 0;

    // This loop runs T(n) time 

    for (i = 1; i < n; ++i)
    {
        p = 0; …
Run Code Online (Sandbox Code Playgroud)

loops for-loop time-complexity nested-loops asymptotic-complexity

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