在为CodeWars开发Kata时,在打印值时遇到错误。尽管代码的输出看起来不错,但我收到了以下错误:“数组(...)与预期的类型“ NULL”不匹配。”
有什么想法可以更改代码以返回字符串吗?
function reverseSeq ($n) {
$n = range($n, 1);
foreach($n as $i) {
if ($i > 1) {
print_r ($i.",");
$i--;
} else {
print_r ($i);
}
}
}
当$ n为3时,输出将按需要输出3,2,1。但是,它应该以字符串而不是整数返回。
答案 0 :(得分:1)
欢迎使用Codewar和Stack Overflow!
对于Codewars katas,您需要将return
的值添加到测试功能,然后该功能将对其进行验证。打印到标准输出有助于调试,但与测试的通过/失败结果无关。 Array (...) does not match expected type "NULL".
是一条通用的PHPUnit失败断言消息,碰巧不是特别有用:它不显示期望数组的内容,也不以正确的顺序记录实际值和期望值。 kata的作者将参数反转为$this->assertEquals(reverseSeq(5), [5,4,3,2,1]);
,因此Array (...)
是测试套件所期望的值,而NULL
是函数返回的值)。
只需尝试:
function reverseSeq($n) {
return range($n, 1);
}
测试跑步者的结果:
You have passed all of the tests! :)