我的JSP中有以下块,它从ENUM值{CREATE, CREATE_FROM_CAMPAIGN, OPEN}转换为漂亮,可读的状态文本.
由于某种原因,第一次测试反对'CREATE'作品,但对抗的测试'CREATE_FROM_CAMPAIGN'没有.
<c:choose>
<c:when test="${entry.activity eq 'CREATE'}">
<td>was created</td>
</c:when>
<c:when test="$(entry.activity eq 'CREATE_FROM_CAMPAIGN'}">
<td>was created from campaign</td>
</c:when>
<c:otherwise>
<td>was opened (${entry.activity}) </td>
</c:otherwise>
</c:choose>
Run Code Online (Sandbox Code Playgroud)
这一个的一个输出如下:
被打开了(CREATE_FROM_CAMPAIGN)
被打开了(OPEN)
为什么第二次测试不起作用?
在尝试编写一个简单的bash脚本来帮助我的部署过程时,我遇到了一个令人困惑的错误:
#!/bin/bash
WEEKDAY=$(date +'%u')
echo $WEEKDAY
DAYS_TO_WEDNESDAY=$((3-$WEEKDAY))
echo $DAYS_TO_WEDNESDAY
Run Code Online (Sandbox Code Playgroud)
结果是:
1
")syntax error: invalid arithmetic operator (error token is "
Run Code Online (Sandbox Code Playgroud)
其中最奇怪的部分是,我可以发誓,这个剧本几天前运行得很好.
问题不在于bash脚本,而在于通过TortoiseSVN使用SVN.通过Windows绕行将EOL标记更改为"CR LF",这导致bash中出现语法错误.设置svn:eol-style -property有助于避免进一步的类似问题.
无论马歇尔Clines''C++ FAQ精简版’和斯科特迈尔斯有效的C++建议使用返回局部静态对象的功能,以避免与非局部静态对象的初始化顺序可能出现的问题.
简而言之(来自"Effective C++",Scott Meyers的第3版):
FileSystem& tfs()
{
static FileSystem fs;
return fs;
}
Run Code Online (Sandbox Code Playgroud)
两位编写者都补充说,这与Singleton模式类似,不同之处在于它不能确保本地fs是FileSystem的唯一实例.
现在,在资源管理类T的一个实例足够的情况下,您更喜欢Singleton类或本地静态方法的原因是什么?尽管我们的应用程序不需要多个实例,但并不一定要将T类限制为仅使用一个实例.
显然,在执行TDD时有一个全局对象是一个问题,但在这种情况下,这两种方法都是全局的.