如何根据另一个列表中的条件(TRUE,FALSE)对列表进行子集化?请看下面的例子:
l <- list(a=c(1,2,3), b=c(4,5,6,5), c=c(3,4,5,6))
l
$a
[1] 1 2 3
$b
[1] 4 5 6 5
$c
[1] 3 4 5 6
cond <- lapply(l, function(x) length(x) > 3)
cond
$a
[1] FALSE
$b
[1] TRUE
$c
[1] TRUE
> l[cond]
Run Code Online (Sandbox Code Playgroud)
l [cond]出错:无效的下标类型'list'
是否可以Hello使用单打印两次condition?
if "condition"
printf ("Hello");
else
printf("World");
Run Code Online (Sandbox Code Playgroud) 关于在Python条件语句中使用括号,我有一个简单的问题.
以下两个片段的工作方式相同,但我想知道这是否真实,因为它的简单性;
>>> import os, socket
>>> if ((socket.gethostname() == "bristle") or (socket.gethostname() == "rete")):
... DEBUG = False
... else:
... DEBUG = True
...
>>> DEBUG
Run Code Online (Sandbox Code Playgroud)
现在没有括号
>>> import os, socket
>>> if socket.gethostname() == "bristle" or socket.gethostname() == "rete":
... DEBUG = False
... else:
... DEBUG = True
...
>>> DEBUG
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮忙解释一下吗?他们在任何情况下我都应该使用它们吗?
我试图有条件地加入两个表,但它给了我语法错误.我试图在网上找到解决方案,但我找不到如何用条件进行条件连接.唯一的另一种选择是从一个表中获取值,然后再次进行查询.
我只是想确认是否有其他方法可以使用linq进行条件连接.
这是我的代码,我试图找到所有等于或低于我的位置.基本上我想得到我的同龄人和下属.
from e in entity.M_Employee
join p in entity.M_Position on e.PostionId >= p.PositionId
select p;
Run Code Online (Sandbox Code Playgroud) 我有一个C#.Net网络应用程序.在该应用程序中,我需要根据登录系统的人有条件地禁用Html.TextBoxFor控件(也包括Html.DropDownListFor控件).我试过用
@Html.TextBoxFor(model => model.ProposalName, new { @ViewBag.IsDisabled })
Run Code Online (Sandbox Code Playgroud)
在Controller中@ViewBag.IsDisabled设置为String.Empty或"disabled"的位置.然而,这呈现为IsDisabled='disabled'或IsDisabled=""因此控制没有被禁用.当我尝试
@Html.TextBoxFor(model => model.ProposalName, new { @ViewBag.Disabled })
Run Code Online (Sandbox Code Playgroud)
即使不ViewBag.Disabled包含文本,控件也始终处于禁用状态.如何有条件地禁用Html.TextBoxFor()控件?
在Stroustrup的The C++ Programming Language:Special Edition(3rd Ed)中,Stroustrup写道,控制语句条件中的变量声明和初始化不仅是允许的,而且是鼓励的.他写道,他鼓励它,因为它将变量的范围缩小到只有它们所需的范围.所以像这样......
if ((int i = read(socket)) < 0) {
// handle error
}
else if (i > 0) {
// handle input
}
else {
return true;
}
Run Code Online (Sandbox Code Playgroud)
...是很好的编程风格和实践.该变量i仅存if在于需要它的语句块中,然后超出范围.
但是,g ++(版本4.3.3 Ubuntu特定编译)似乎不支持编程语言的这个特性,这对我来说是令人惊讶的.也许我只是用一个标志来调用g ++来关闭它(我称之为的标志是-g和-Wall).在使用这些标志进行编译时,我的g ++版本返回以下编译错误:
socket.cpp:130: error: expected primary-expression before ‘int’
socket.cpp:130: error: expected `)' before ‘int’
Run Code Online (Sandbox Code Playgroud)
在进一步的研究中,我发现我似乎并不是唯一一个不支持此编译器的编译器.并且在这个问题中似乎存在一些混淆,因为确切地说语言在语言中是什么标准,以及编译器使用它编译什么.
所以问题是,什么编译器支持这个功能以及需要设置哪些标志才能编译?这是某个标准而不是其他标准的问题吗?
另外,出于好奇,人们普遍认同Stroustrup这是好风格吗?或者这是一种语言的创造者在他脑海中获得一个想法的情况,这个想法不一定得到语言社区的支持?
"替换条件与多态"只有在您正在为您选择切换/ if语句的对象类型时才是优雅的.作为一个例子,我有一个Web应用程序,它读取一个名为"action"的查询字符串参数.动作可以具有"视图","编辑","排序"等值.那么如何用多态实现呢?好吧,我可以创建一个名为BaseAction的抽象类,并从中派生ViewAction,EditAction和SortAction.但是,我不需要条件来决定实例化哪种类型的BaseAction?我不知道如何用多态完全替换条件.如果有的话,条件只会被推到链的顶端.
编辑:
public abstract class BaseAction
{
public abstract void doSomething();
}
public class ViewAction : BaseAction
{
public override void doSomething() { // perform a view action here... }
}
public class EditAction : BaseAction
{
public override void doSomething() { // perform an edit action here... }
}
public class SortAction : BaseAction
{
public override void doSomething() { // perform a sort action here... }
}
string action = "view"; // suppose user can pass either …Run Code Online (Sandbox Code Playgroud) 我需要在3个值之间做一个xor条件,即我需要三个值中的一个为真但不超过一个而不是没有.
我以为我可以使用xor ^运算符,但它没有按预期工作.
我预计这会返回假,但它不会.(true ^ true ^ true)
所有其他组合似乎按我的预期工作.
在查看xor运算符的文档时,他们只讨论比较2个值,并且我无法在线查找3个或更多值的任何内容.
任何人都可以放弃任何亮点或建议一个简单的方法吗?
有没有办法在twig中实现嵌套的if else功能?我尝试了以下但它不起作用:
<body
{% if page|default('login') == 'login' %}
class="login"
{% else if( page == 'other') %}
class="login"
{% else %}
class="noclass"
{% endif %}>
</body>
Run Code Online (Sandbox Code Playgroud) 我在命令行上传递了一个ansible变量:
ansible-playbook -e environment=staging ansible/make_server.yml
Run Code Online (Sandbox Code Playgroud)
我想在我的角色中加载一些变量,这取决于环境的价值.我尝试了很多不同的方法,例如:
- include_vars: staging_vars.yml
when: environment | staging
Run Code Online (Sandbox Code Playgroud)
和
- include_vars: staging_vars.yml
when: "{{environment}} == "staging"
Run Code Online (Sandbox Code Playgroud)
和
- include_vars: staging_vars.yml
when: "{{environment}} | match('staging')"
Run Code Online (Sandbox Code Playgroud)
但似乎没什么用.我该怎么做呢?
细节:
conditional ×10
ansible ×1
c ×1
c# ×1
c++ ×1
declaration ×1
html.textbox ×1
join ×1
linq ×1
list ×1
operators ×1
parentheses ×1
polymorphism ×1
python ×1
r ×1
refactoring ×1
symfony ×1
twig ×1
variables ×1