小编hey*_*hew的帖子

Hashset与Treeset

我一直喜欢树木,它们很好,O(n*log(n))而且它们整洁.然而,我所知道的每一位软件工程师都有针对性地问我为什么会使用TreeSet.从CS背景来看,我认为你所使用的并不重要,而且我不想乱用哈希函数和桶(在这种情况下Java).

在这情况下,我应该使用HashSetTreeSet

java hashset treeset

482
推荐指数
8
解决办法
30万
查看次数

为什么'git bisect'分支没有意识到?

我试图找到一个错误的来源,这个错误是自从过去一天在一个名为feature-x的长寿命分支(将在很久以后发布)中提交以来出现的.

但是有一个错误.我找到了我不希望从我的脚本中可能已经在任何提交中引入的行为,特别是因为master的特性在feature-x中被大量使用,但是对于Master本身而言则较少.

要测试此行为,我必须运行我的脚本dependent.pl.但当bisect跳过代码的一半时,我的脚本在Master上不存在,因此无法测试.

我相信这是因为bisect将你拉到无头状态,但在这种情况下我真的想要处于这个其他历史/变化集的背景下,而不是漂浮在以太.

在任何人跳起来之前你做错了蜂鸣器之前,我们的团队喜欢在这些情况下合并分支,因为这个比喻适用于这种情况,而不是重组.

我将通过创建一个样本回购来演示这个:

git init

echo 'sub f { print $_; }' > main.pl
git add .
git commit -a -m "inital commit"

git branch feature-x
git checkout feature-x
echo 'main::f(1)' > dependent.pl
git add .
git commit -a -m "Starting work on feature X"
git tag dev-1.0

git checkout master
echo "sub f { return 1; }" > main.pl
git commit -a -m "sub f { return 1; }"
echo "sub f …
Run Code Online (Sandbox Code Playgroud)

git debugging branch rebase git-rebase

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

PostgreSQL的"Deferrable Delete"仍然符合Delete的限制

我想删除两个表中的行,这两个表通过一组可延迟的约束相互依赖.为了简化这篇文章,我模拟了一个简单的数据库模式.

我希望在SQL事务/数据库补丁中删除某些表中的条目'delete_from_me'.问题是,我想在松开链接本身之前根据第二个表'constraining_table'中的选择进行删除.

这是两个表的描述:

tab-quarantine=> \d delete_from_me
       Table "public.delete_from_me"
  Column   |       Type        | Modifiers 
-----------+-------------------+-----------
 id        | character varying | not null
 extension | character varying | not null
Indexes:
    "delete_from_me_pkey" PRIMARY KEY, btree (id)

tab-quarantine=> \d constraining_table 
   Table "public.constraining_table"
 Column |       Type        | Modifiers 
--------+-------------------+-----------
 image  | character varying | not null
 type   | character varying | not null
Foreign-key constraints:
    "constraining_table_image_fkey" FOREIGN KEY (image) REFERENCES delete_from_me(id)
         ON UPDATE CASCADE
         ON DELETE RESTRICT DEFERRABLE
Run Code Online (Sandbox Code Playgroud)

这是我刚刚在那里抨击的一些示例数据:

tab-quarantine=> SELECT * FROM delete_from_me; …
Run Code Online (Sandbox Code Playgroud)

sql postgresql transactions cascade

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

Perl模块方法调用:不能在$ {SOMEFILE}行$ {SOMELINE}的未定义值上调用方法"X"

到处都是,特别是在DBI中,我看到这个消息一直出现.令人困惑的是,因为首先想到的是我传递函数的参数被设置为undef(或类似的东西),但显然不是这样.

给定一个模块和相应的脚本......

模块: ./lib/My/Module.pm

package My::Module;

use strict;
use warnings;

sub trim {
    my $str = shift;
    $str =~ s{ \A \s+ }{}xms; # remove space from front of string
    $str =~ s{ \s+ \z }{}xms; # remove space from end of string
    return $str;
}
Run Code Online (Sandbox Code Playgroud)

脚本: ./test.pl

#!/usr/bin/perl

use strict;
use warnings;
use My::Module qw(trim);

print $My::Module->trim( " \t hello world\t \t" );
Run Code Online (Sandbox Code Playgroud)

我收到了错误消息

无法在./text.pl第7行的未定义值上调用方法"trim".

事实上,如果我调用$My::Module->notamethod( "hello world" );它会产生类似的错误.

上面的脚本/模块出了什么问题?

这个错误Can't call method “X” on an …

perl module function dbi

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