我一直喜欢树木,它们很好,O(n*log(n))而且它们整洁.然而,我所知道的每一位软件工程师都有针对性地问我为什么会使用TreeSet.从CS背景来看,我认为你所使用的并不重要,而且我不想乱用哈希函数和桶(在这种情况下Java).
在这情况下,我应该使用HashSet过TreeSet?
我试图找到一个错误的来源,这个错误是自从过去一天在一个名为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) 我想删除两个表中的行,这两个表通过一组可延迟的约束相互依赖.为了简化这篇文章,我模拟了一个简单的数据库模式.
我希望在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) 到处都是,特别是在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 …