小编rua*_*akh的帖子

如何调试Subversion预提交钩子脚本?

这似乎是一个非常基本的问题,但我被淘汰了.如何测试那些为了挂钩而编写的脚本.

我们知道脚本是在后台运行的,SVN控制台只会向我们抛出错误.我尝试使用断点但是我没有任何东西可以为脚本提供输入.

有没有人对此有所了解.我正在Windows上编写svn钩子脚本,因此很多已编写的钩子脚本要么没有运行,要么没有提供所需的输出,例如从apache检查mime-type和eol脚本.

svn pre-commit-hook

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

为什么const模板化引用类型与const引用类型不同?

考虑这个模板:

template< typename T, typename RefT = T& >
class foo
{
    typedef const RefT const_ref_t;
    typedef const T&   another_const_ref_t;

    //...

};
Run Code Online (Sandbox Code Playgroud)

我会假设类型const_ref_tanother_const_ref_t等价物.两者都是const T&.但事实并非如此.唉,以下关于它们不等价的证明是相当复杂的.它取决于使用dynamic_cast<>来检查另一个类的类型.

class abstractBase
{
public: virtual ~abstractBase() {}
};

template< typename T >
class otherClass : public abstractBase
{
};

template< typename T, typename RefT = T& >
class foo
{
    typedef const RefT const_ref_t;
    typedef const T&   another_const_ref_t;

public:
    void discover( abstractBase* p )
    {
        otherClass< const_ref_t >* …
Run Code Online (Sandbox Code Playgroud)

c++ templates dynamic-cast typedef

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

修改作为函数传入的字符串文字

如果我在程序中有一个函数

int main(){
   char *name = "New Holland";
   modify(name);
   printf("%s\n",name);
}
Run Code Online (Sandbox Code Playgroud)

调用这个函数

void modify(char *s){
   char new_name[10] = "Australia";
   s = new_name;         /* How do I correct this? */
}
Run Code Online (Sandbox Code Playgroud)

如何使用澳大利亚更新字符串文字名称(现在等于新荷兰)的值。

我认为我面临的问题是new_name是本地存储,所以函数返回后,变量没有存储

c pointers pass-by-reference pass-by-value string-literals

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

如何通过变量传递filename以通过awk读取它

美好的一天,

我想知道如何将文件名传递给awk作为变量,以便awk读取它.

到目前为止我做了:

echo    file1   >  Aenumerar
echo    file2   >> Aenumerar
echo    file3   >> Aenumerar

AE=`grep -c '' Aenumerar`
r=1
while [ $r -le $AE ]; do
    lista=`awk "NR==$r {print $0}" Aenumerar`
    AEList=`grep -c '' $lista`
    s=1
    while [ $s -le $AEList ]; do
        word=`awk -v var=$s 'NR==var {print $1}' $lista`
        echo $word
    let "s = s + 1"
    done
let "r = r + 1"
done
Run Code Online (Sandbox Code Playgroud)

非常感谢您提供任何线索或其他简单的方法来使用bash命令行

bash shell awk

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

Javascript - Project Euler Solution 8,代码无法正常工作

我是一名初学程序员,我正在尝试解决Project Euler Problem 8(找到具有最大产品的13个相邻数字).这是我的代码:

var n = "7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450";

function multiplyNext13(a){
    var result = 1;
    for (i = a; i < a + 13; i++){
        result *= Number(n[i]);
    }
    return result;
}

function getAnswer(){
    var answer = 5000940;
    for (i = 0; i < 988; i++){
        if (multiplyNext13(i) > answer){
            answer = multiplyNext13(i);
        }
    }
    document.getElementById("a").innerHTML = answer;
}
Run Code Online (Sandbox Code Playgroud)

功能getAnswer()一直在给我answer = 0,但我不知道什么是错的.我测试了这个功能multiplyNext13(),我相信它运行正常.

这段代码出了什么问题?为什么不工作?

javascript

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

日期:无效日期'2018-10-21 +1天'

当我要求date2018-10-21之后的那天,我得到了一个奇怪的行为:

date --date "2018-10-20 +1 day" +"%Y-%m-%d"    # OK, 2018-10-21
date --date "2018-10-21 +1 day" +"%Y-%m-%d"    # invalid date, see below
date --date "2018-10-22 +1 day" +"%Y-%m-%d"    # OK, 2018-10-23
Run Code Online (Sandbox Code Playgroud)

确切的错误消息是:

date: invalid date ‘2018-10-21 +1 day’
Run Code Online (Sandbox Code Playgroud)

为什么会这样?


如果它是相关的...

这是输出lsb_release -a:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:    14.04
Codename:   trusty
Run Code Online (Sandbox Code Playgroud)

(我得到了同样的行为Ubuntu 16.04.4 LTS).

这是输出locale:

LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8" …
Run Code Online (Sandbox Code Playgroud)

linux bash ubuntu date

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

特殊完美迷宫生成算法

我正在尝试创建一个特殊的完美迷宫生成器。

而不是有房间和墙壁的标准案例,我正在处理一个充满块的单元格网格,在那里我可以从一些单元格中删除块:

  • 连接两个给定的单元格(例如,将左上角的单元格连接到左下角的单元格)
  • 为了有一个最大的块删除
  • 每个移除的块单元必须使用一种方式相互连接

我使用 DFS 算法来挖掘路径迷宫,但我找不到确保两个给定单元格连接的方法。

正常情况从这里开始

+-+-+
| | |
+-+-+
| | |
+-+-+
Run Code Online (Sandbox Code Playgroud)

到这里

+-+-+
| | |
+ + +
|   |
+-+-+
Run Code Online (Sandbox Code Playgroud)

就我而言,我试图将左上角的单元格连接到右下角的单元格:

##
##
Run Code Online (Sandbox Code Playgroud)

到这里

.#
..
Run Code Online (Sandbox Code Playgroud)

或在这里

..
#.
Run Code Online (Sandbox Code Playgroud)

但不是在这里(因为右下角的单元格被挡住了)

..
.#
Run Code Online (Sandbox Code Playgroud)

而不是在这里(两个单元格没有连接)

.#
#.
Run Code Online (Sandbox Code Playgroud)

而不是在这里(迷宫并不完美,细胞由不止一条路径连接)

..
..
Run Code Online (Sandbox Code Playgroud)

这里还有两个 8x8 示例:

好一个(完美的迷宫,从左上角的单元格到右下角的单元格有一条路径):

..#.....
.#.#.##.
.......#
.#.#.##.
.##...#.
..#.#...
.##.#.#.
...###..
Run Code Online (Sandbox Code Playgroud)

坏的(完美的迷宫,但没有从左上角单元格到右下角单元格的路径):

...#....
.##..#.#
....##..
#.#...##
#..##...
..#..#.#
#...#...
##.###.#
Run Code Online (Sandbox Code Playgroud)

一些不错的 1000x1000 解决生成的迷宫

algorithm maze generator depth-first-search

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

Java regexp - "()"括号

Pattern pattern = Pattern.compile("<a>([a-zA-Z]+)</a>")
Matcher matcher = pattern.matcher("<a>Text</a>");
matcher.find()
String str = matcher.group();
Run Code Online (Sandbox Code Playgroud)

我想要达到目标"Text",但我得到了"<a>Text</a>".我为什么以及如何正确地做到这一点?

java regex

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

为什么我的javascript regexp测试功能不起作用?

我有一个Javascript函数测试正则表达式,我打算验证正小数,精度为2:

function isPositiveDecimalPrecisionTwo(str) {
    return /^\d*(\.\d{1,2}$)?/.test(str);
}
Run Code Online (Sandbox Code Playgroud)

当我从代码中调用它时,我没有得到我期望的结果.

例如:

var a = isPositiveDecimalPrecisionTwo("1");         //   expect t, returns t
var b = isPositiveDecimalPrecisionTwo("1.2");       //   expect t, returns t
var c = isPositiveDecimalPrecisionTwo("1.25");      //   expect t, returns t
var d = isPositiveDecimalPrecisionTwo("1.257");     // * expect f, returns t *
var e = isPositiveDecimalPrecisionTwo("1.2575");    // * expect f, returns t *
var f = isPositiveDecimalPrecisionTwo(".25");       // * expect t, returns f *
var g = isPositiveDecimalPrecisionTwo("d");         //   expect f, returns f
var h …
Run Code Online (Sandbox Code Playgroud)

javascript regex

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

java中的多重继承和方法覆盖问题

我在另一篇文章中询问了一个类似的问题(如何从不需要强制转换的派生类实现一个方法),但这更具体一些.假设我有3个类:车辆,汽车,敞篷车.汽车延伸车辆,敞篷车延伸汽车.我想为每个类返回一个方法,该方法返回一个不需要在运行时强制转换的列表.经过一番思考后我认为这是不可能的,但我也想听听你的意见

public class Vehicle {
    public List<? extends Vehicle> getList() {
        return new ArrayList<Vehicle>();
    }
}

public class Car extends Vehicle {
    @Override
    public List<? extends Car> getList() {
        return new ArrayList<Car>();
    }
}

public class Convertible extends Car {
    @Override
    public List<? extends Convertible> getList() {
        return new ArrayList<Convertible>();
    }
}
Run Code Online (Sandbox Code Playgroud)

为了不使用强制转换,我必须在list(List<Convertible>)中返回特定类型的元素,但如果我想扩展Convertible类,我就不能再这样做了.

这种情况有什么办法吗?

java oop design-patterns

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