小编Jer*_*auw的帖子

PHP7中可为空的返回类型

PHP 7引入了返回类型声明.这意味着我现在可以指示返回值是某个类,接口,数组,可调用或新的可阻塞标量类型之一,这对于函数参数是可能的.

function returnHello(): string {
    return 'hello';
}
Run Code Online (Sandbox Code Playgroud)

通常情况下,值并不总是存在,并且您可能返回某种类型的某些内容,或者返回null.虽然您可以通过将其默认值设置为null(DateTime $time = null)来使参数可为空,但似乎没有办法为返回类型执行此操作.确实如此,或者我不知道怎么做?这些不起作用:

function returnHello(): string? {
    return 'hello';
}

function returnHello(): string|null {
    return 'hello';
}
Run Code Online (Sandbox Code Playgroud)

php nullable return-type type-hinting php-7

148
推荐指数
2
解决办法
7万
查看次数

在(GitHub)Markdown中的图像周围流动文本

我有一个狭长的图像,我想在GitHub上的README.md文件的右上角显示.我一直在尝试几种方法来使它正确对齐并且目前有

<p align="right">
  <img src="doc/subpagelist.png" />
</p>
Run Code Online (Sandbox Code Playgroud)

这是因为图像在右侧对齐,但是相当无用,因为Markdown文件中图像下方的所有内容都显示在图像的底部,而不是显示在图像的左侧.

有没有办法让文本在图像周围流动(没有删除标题和段落)?

markdown github

56
推荐指数
5
解决办法
3万
查看次数

Java中的默认构造函数

我知道我在这里问了一些严肃的问题......

我有一些课程Foo和一个课程Bar延伸Foo.在Foo我有一个构造函数的一组参数,它设置为它的领域.派生类Bar通常不需要修改它.现在我的IDE给了我"Foo中没有默认构造函数".从谷歌搜索中看,这似乎是因为"构造函数不是继承的".所以一切都很好,但是我现在如何在不重复每个派生类的构造函数的情况下使用它?我假设有一个更理智的方法?

java inheritance constructor

51
推荐指数
3
解决办法
5万
查看次数

NodeJs child_process工作目录

我试图在不同的目录中执行子进程,然后在其父目录中执行.

var exec = require('child_process').exec;

exec(
    'pwd',
    {
        cdw: someDirectoryVariable
    },
    function(error, stdout, stderr) {
        // ...
    }
);
Run Code Online (Sandbox Code Playgroud)

我正在做上面的事情(虽然当然运行"pwd"不是我最终想要做的).这将最终将父进程的pwd写入stdout,无论我为cdw选项提供什么值.

我错过了什么?

(我确实确保传递路径作为cwd选项实际存在)

javascript working-directory child-process node.js

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

用数据提供程序编写Java测试

我正在做我的第一个Java项目,并且喜欢完全TDD它.我正在使用JUnit来编写测试.显然JUnit不提供对数据提供程序的支持,这使得用20个不同版本的参数测试相同的方法相当烦人.什么是支持数据提供程序的最流行的/标准的Java测试工具?我遇到过TestNG,但不知道它是多么受欢迎,或者它与替代品相比如何.

如果有一种方法来获得这种行为是一种使用JUnit的好方法,那么这也可能有效.

java testing junit

33
推荐指数
4
解决办法
4万
查看次数

PHPUnit断言没有调用任何方法

我有一个使用ServiceB的ClassA.在某种情况下,ClassA最终不应该调用任何ServiceB方法.我现在想测试这个并且确实没有确实调用任何方法.

这可以按如下方式完成:

$classA->expects( $this->never() )->method( 'first_method' );
$classA->expects( $this->never() )->method( 'second_method' );
...
Run Code Online (Sandbox Code Playgroud)

有没有办法简单地说"不应该在这个对象上调用方法"而不是必须为每个方法指定一个限制?

php testing phpunit unit-testing mocking

30
推荐指数
1
解决办法
8935
查看次数

在Node.js中并行化任务

我想在JS中做一些资源密集的任务.对于这个问题,我们假设它们是一些繁重的计算,而不是系统访问.现在我想同时运行任务A,B和C,并在完成后执行一些功能D.

异步库为此提供了一个很好的脚手架:

async.parallel([A, B, C], D);
Run Code Online (Sandbox Code Playgroud)

如果我正在做的只是计算,那么它仍将同步运行(除非库将任务放在不同的线程上,我预计不是这种情况).我该如何让它实际上是平行的?通常由异步代码完成的事情是什么,以阻止调用者(使用NodeJS时)?它是否开始了儿童过程

javascript parallel-processing multithreading asynchronous node.js

29
推荐指数
3
解决办法
3万
查看次数

安装gem会导致错误

ruby 2.0.0p247(2013-06-27修订版41674)[x86_64-linux]

宝石2.0.3

sudo gem install travis
Building native extensions.  This could take a while...
ERROR:  Error installing travis:
        ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
        from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from extconf.rb:4:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/ffi-1.9.0 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/ffi-1.9.0/ext/ffi_c/gem_make.out
Run Code Online (Sandbox Code Playgroud)

在尝试安装其他宝石时也会遇到这种情况.我不是Ruby用户,谷歌搜索错误并没有让我得到任何有效的解决方案.

我使用RVM安装了Ruby 2.0:"curl -L https://get.rvm.io | bash -s stable --ruby".

如果我做"sudo ruby​​ -v"我得到"ruby 1.9.3p194(2012-04-20 revision 35410)[x86_64-linux]".

ruby gem travis-ci

15
推荐指数
1
解决办法
3884
查看次数

在更改时运行PHPUnit测试

每当文件在磁盘上发生变化时,我都想运行我的PHPUnit测试(或者至少是它们的一部分).非常类似于" grunt watch "所能做的.我有一个项目,我有JS和PHP,并使用Grunt.在那里我向PHPUnit发出请求,让它在我使用grunt watch的JS测试之上运行.虽然这样做很好,但在仅PHP项目中执行此操作似乎非常麻烦.我需要引入grunt,并在节点上添加依赖项.另外,我有很多这样的PHP项目.因此,更简单的解决方案是有序的.

php testing phpunit gruntjs

15
推荐指数
4
解决办法
6747
查看次数

外壳到节点时保留输出颜色

我有一个小Grunt任务,通过节点弹出并运行"composer install".

var done = this.async();

var exec = require('child_process').exec;
var composer = exec(
    'php bin/composer.phar install',
    function(error, stdout, stderr) {
        done(error===null);
    }
);

composer.stdout.on(
    'data',
    grunt.log.write
);
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在将此子进程的stdout输出到grunt.log.除了输出都是我的默认控制台颜色外,所有输出都显示出良好且与预期一致.如果我直接运行"composer install",我会突出显示提高可读性.

由于我是节点的新手,Grunt和一般的炮轰,我不确定系统的哪个部分着色会丢失,甚至不知道如何有效地调试它.

javascript stdout child-process node.js gruntjs

13
推荐指数
4
解决办法
7233
查看次数