你好我在想什么是更好的写(速度和/或效率):
bool Method(...) { ... }
...
bool result = Method(...);
if (result == false)
{ ... }
// or
if (!result)
{ ... }
Run Code Online (Sandbox Code Playgroud)
或者,或者......
if (result == true)
// or
if (result)
Run Code Online (Sandbox Code Playgroud)
我问,因为我使用第一个(result == false)但有时它会变得很长,尤其是在condition ? expr : expr语句中.
我有这个if-else声明做我想要的.正如你应该能说的那样,它正在做的事情非常简单.
if (width != null && height != null)
{
if (top != null && left != null)
{
ret.type = VMLDimensionType.full;
}
else
{
ret.type = VMLDimensionType.size;
}
}
else
{
if (top != null && left != null)
{
ret.type = VMLDimensionType.positon;
}
else
{
ret.type = VMLDimensionType.unset;
}
}
Run Code Online (Sandbox Code Playgroud)
的enum被称为是:
private enum VMLDimensionType
{
unset = 0,
full = 1,
size = 2,
position = 3
}
Run Code Online (Sandbox Code Playgroud)
它非常简单,我确信有更简洁,更易读的方式来表达这一点.
注意如果不是因为默认情况下VS强加的荒谬的"每条一条线"规则,我可能不会那么烦恼.例如在VB中,我可能会从此代码块中丢失大约10行!(关于那个的任何想法?)
c# refactoring code-readability code-snippets conditional-statements
我试图指定两个条件作为for循环的一部分.似乎第二个for循环中的第二个条件没有被考虑.我的代码以这种方式运行:
for (i in 1:nrow(mydata)) {
for (j in 1:nrow(mydata) && j!=i ) {
Statements....
}
Statements...
}
Run Code Online (Sandbox Code Playgroud)
你能否告诉我这是否是R中正确的语法?谢谢!
我有3个sed命令:
sed -n 's/.*domain=\([^&]*\).*sdk_ver=\([^&]*\).*/\1 \2/p' inputfile > outputfile
sed -n 's/.*sdk_version=\([^&]*\).*domain=\([^&]*\).*/\2 \1/p' inputfile > outputfile
sed -n 's/.*domain=\([^&]*\).*sdk_version=\([^&]*\).*/\1 \2/p' inputfile > outputfile
Run Code Online (Sandbox Code Playgroud)
每个命令都有一个标准.我只想将3个命令放入1个命令中,以获得单个输出文件,其中包含所有结果作为三个条件的并集.
我使用CakePHP 2.1的工作
让我们的国家,我有以下的模型和关系:
Posts属于关联Edition
PostsHABTM Editors
PostsHABTMTags
我是从这个推理出来的PostsController,我想找到所有Posts属于某个的Edition,这Editor.id=55是相关的,并且Tag.id=33是相关的.
我发现了许多例子,其中Posts根据HABTM关系的条件进行查找是通过"反转"查找方向和原因来完成的Editor.
$this->Editor->find('all',
array(
'conditions'=>array('Editor.id'=>55),
'contain'=>array('Post')
)
);
Run Code Online (Sandbox Code Playgroud)
不幸的是,这在这里不起作用,因为我想提出多个HABTM关系.
使用contain也不起作用,因为它只切断了一个branch(editors),但没有帮助过滤它的parent(posts).
我该如何解决这个问题?
我是否可能需要采用临时连接?如果是这样,有人可以大致解释一下采取什么方法?
编辑: 一些伪代码,以说明我想要实现的目标:
$this->Post->find('all',
array('conditions'=>array(
'Edition.id'=>4,
// start pseudo code
'Post.Editor' => 'has at least one related editor with id=55',
'Post.Tag' => 'has at least one related tag with id=33',
)
)
);
Run Code Online (Sandbox Code Playgroud)
亲切的问候,巴特
编辑解决方案: 关注@RichardAtHome我在下面创建了解决方案.不(尚)使用多个连接条件,但似乎没有必要:
// …Run Code Online (Sandbox Code Playgroud) cakephp has-and-belongs-to-many multiple-conditions conditional-statements cakephp-2.0
我的JSF渲染有问题.表达式语言中的给定条件不会以正确的方式执行.例如:
例1
<f:param name="cat" value="#{product.category.uri}" rendered="#{product.category.parent.uri == null}" />
<f:param name="cat" value="#{product.category.parent.uri}" rendered="#{product.category.parent.uri != null}" />
Run Code Online (Sandbox Code Playgroud)
例2
<c:if test="#{product.category.parent.uri == null}">
<f:param name="cat" value="#{product.category.uri}" />
</c:if>
<c:if test="#{product.category.parent.uri != null}">
<f:param name="cat" value="#{product.category.parent.uri}" />
</c:if>
Run Code Online (Sandbox Code Playgroud)
问题
在这两个示例中,我的两个参数都将添加到我周围的h:outputLink中.我不确定要添加的其他代码,所以如果你们需要其他任何东西来帮助我,我会很乐意提供它.
提前致谢.
示例3(根据要求)
<?xml version='1.0' encoding='UTF-8' ?>
<ui:composition template="./WEB-INF/templates/base.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<ui:define name="content">
<c:choose>
<c:when test="#{webshop.productlist.size() > 0}">
<div id="spacer">
<ui:repeat value="#{webshop.productlist}" var="product">
<div id="block">
<p>
<h:outputLink value="product.xhtml">
#{product.name}
<c:choose>
<c:when test="#{product.category.parent.uri == null}">
<f:param name="cat" value="#{product.category.uri}" rendered="" />
</c:when>
<c:otherwise> …Run Code Online (Sandbox Code Playgroud) 有没有一种方法可以根据另一个表中字段的值有条件地改变我内部加入的表?这是我到目前为止所得到的(但错误):
SELECT
j.jobID, j.jobNumber,
CASE
WHEN j.idType = 'dealership' THEN d.dealershipName
WHEN j.idType = 'Group' THEN g.groupName
WHEN j.idType = 'Agency' then a.agencyName
END as dealershipName,
CASE
WHEN p.manualTimestamp != '0000-00-00 00:00:00' THEN UNIX_TIMESTAMP(p.manualTimestamp)
WHEN p.manualTimestamp = '0000-00-00 00:00:00' THEN p.timestamp
END as checkTS,
CONCAT_WS(' ', ui.fName, ui.lName) as salesRep
FROM jobs j
LEFT JOIN dealerships d ON j.dealershipID = d.dealershipID
LEFT JOIN dealershipgroups g ON j.dealershipID = g.groupID
LEFT JOIN agencies a ON j.dealershipID = a.agencyID
INNER JOIN payments …Run Code Online (Sandbox Code Playgroud) 如何在Handlebars模板中使用内联条件表达式?
有一种方法可以在"原生"的方式做到这一点吗?我的意思是,没有注册自定义助手?
例如,我一直在玩代码(带括号而没有它们):
<select name="alignment">
<option value="left" {{ #if (options.text_alignment == 'left') }}selected="selected"{{ /if }}>Left</option>
<option value="center" {{ #if (options.text_alignment == 'center') }}selected="selected"{{ /if }}>Center</option>
<option value="right" {{ #if (options.text_alignment == 'right') }}selected="selected"{{ /if }}>Right</option>
</select>
Run Code Online (Sandbox Code Playgroud)
但它根本不起作用并抛出错误:
Error: Parse error on line 20:
...ion value="left" {{ #if (options.text_al
-----------------------^
Expecting 'ID', 'DATA', got 'INVALID'
[Break On This Error]
throw new Error(str);
Run Code Online (Sandbox Code Playgroud)
那么,我如何以if/else结构或经典三元运算符的形式获得内联条件语句(var == value)?'yes':'no'
提前致谢.
expression if-statement inline conditional-statements handlebars.js
Ruby提供unless和elsif声明.似乎很自然地假设会有类似的elsunless陈述,但没有.这有什么特别的原因吗?
为了说明,这个语句允许这样的代码.
unless broken
# do something
elsunless done
# do something else
end
Run Code Online (Sandbox Code Playgroud)
我知道,这个代码可以被改写为使用if和elsif,但在使用某些情况下,unless更清晰.
当我在表达式中不添加任何文件名时,将检查哪个文件存在并且是常规文件[ -f ] && echo 1?
$ [ -f ] && echo "1"
1
Run Code Online (Sandbox Code Playgroud) c# ×2
bash ×1
boolean ×1
cakephp ×1
cakephp-2.0 ×1
criteria ×1
el ×1
expression ×1
for-loop ×1
if-statement ×1
inline ×1
inner-join ×1
java ×1
jsf ×1
mysql ×1
performance ×1
r ×1
refactoring ×1
rendering ×1
ruby ×1
sed ×1
shell ×1
unix ×1