标签: conditional-statements

是否可以在匿名类型中使用条件字段

我有一些看起来像这样的代码,并从现有的集合创建一个列表

 var items = items.ConvertAll(r => new
            {
                description = FormatDescription(r),
                start = r.Milestone.HasValue ? r.Milestone.Value.ToString("yyyy-MM-ddTHH:mm:ssZ") : DateTime.Today.ToString("yyyy-MM-ddTHH:mm:ssZ"),
                classname = "significance" + r.SignificanceLevel,
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,现在如果我没有开始日期(r.Milestone)那么我就把它放在今天的日期.我真的想做的如果说:

  1. 如果我有一个r.Milestone.Hasvalue显示该日期,如果我没有值,则根本没有匿名类型的START DATE字段.

是否可以使用此条件逻辑,您可以在此类代码中一起删除字段?

c# linq anonymous-types conditional-statements

10
推荐指数
1
解决办法
2917
查看次数

C#,模式 - 许多条件

我正在为我的问题寻找一个好的模式.

我有一些bool变量:

condition1,condition2,condition3.

我也有一些动作,在课堂内的不同地方调用:

动作1,动作2,ACTION3

当条件1和2为真时,调用Action1.当条件2和3为真时,将调用action2.当所有条件都为真时,将调用操作3.

当然,这只是问题的简化.我不想在每个地方使用if else.这非常不清楚.

我一直在考虑状态,但我想这不是解决这个问题的最佳方法.

c# design-patterns pattern-matching conditional-statements

10
推荐指数
1
解决办法
1567
查看次数

SwiftUI - 带有条件闭包的 if let 的替代方案

我正在尝试在 SwiftUI 中实现以下内容:

struct PersonView: View {

    @State private var age: Int? = 0

    var body: some View {
        VStack {
            Text("Just a test")
            if let self.age > 0 {
                Text("Display Age: \(age)")
            } else {
                Text("Age must be greater than 0!")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,在 SwiftUI 中,会if let导致以下错误:

包含控制流语句的闭包不能与函数构建器“ViewBuilder”一起使用

因此,在研究了这个主题之后,我遇到了一个.map用于解开age可选项的建议。因此,我已修改VStack为如下代码:

Text("Just a test")
self.age.map {elem in
    if elem > 0 {
        Text("Display Age: \(elem)")
    } else {
        Text("Age must be …
Run Code Online (Sandbox Code Playgroud)

closures view optional conditional-statements swiftui

10
推荐指数
3
解决办法
8428
查看次数

SwiftUI - 根据条件添加导航栏按钮

鉴于我有这样的看法..

@State var tabIndex: Int = 0
           
 var body: some View {

  TabView(selection: $tabIndex)
  {
   Text("Tab 1").tabItem({
    Image(systemName: "message")
   }).tag(0)           
                
   Text("Tab 2").tabItem({
    Image(systemName: "arkit")
   }).tag(1)             
          
   Text("Tab 3").tabItem({
    Image(systemName: "battery.100")
   }).tag(2)
  }.navigationBarTitle("Tabbed View")
            
 }
Run Code Online (Sandbox Code Playgroud)

这会产生一个这样的视图,这是预期的:

在此处输入图片说明

在我可以使用的栏中添加导航按钮

 .navigationBarItems(trailing:
  Button(action: {print("Button was tapped")}) {
   Image(systemName: "plus")
    .resizable().frame(width: 20, height: 20)
  })
Run Code Online (Sandbox Code Playgroud)

预期添加按钮

有没有办法只根据条件添加(或显示)按钮?

if (self.tabIndex == 1){
  show button
}
else {
 don't show button
}
Run Code Online (Sandbox Code Playgroud)

conditional-statements ios swiftui

10
推荐指数
3
解决办法
3075
查看次数

Zend Studio报告警告:条件分配.这真糟糕吗?

我最近开始使用Zend Studio,它报告了以下类型的代码:

$q = query("select * from some_table where some_condition");
while ($f = fetch($q)) {
  // some inner workings
}
Run Code Online (Sandbox Code Playgroud)

要停止警告,代码需要像这样写:

$q = query("select * from some_table where some_condition");
$f = fetch($q);
while ($f) {
  // some inner workings
  $f = fetch($q);
}
Run Code Online (Sandbox Code Playgroud)

为什么这被标记为警告?这么糟糕吗?

我知道警告可能旨在阻止这样的错误:

$a = 1;
while ($a = 1) {
  // some inner workings
  $a++;
}
Run Code Online (Sandbox Code Playgroud)

永远不会终止,因为1被分配给$ a,而$ a又返回1到while语句,而不是针对$ a进行测试,并且当$ a不是1时,将false返回到while语句.

容易出错的错误可以验证警告,但是在第二个例子中忘记在while块的末尾添加额外的$ f = fetch($ q),这也会导致永远不会终止的循环.如果我更改我的代码以删除警告,然后忘记在while块的末尾添加$ f = fetch($ q),Zend将不会发出警告!

因此,通过删除有关常见错误的警告,我正在为自己设置一个不同的常见错误.

走出锅,进入火中.

warnings zend-framework variable-assignment while-loop conditional-statements

9
推荐指数
3
解决办法
9252
查看次数

Magento - 检查cms页面

我想通过php查看页面是否是Magento中的cms_page.我需要针对cms页面的不同面包屑,所以我试着用条件,但我不知道如何或在哪里看.到目前为止,我的breadcrumbs.phtml.

<?php if(this is a cms page): ?>

<p>some content</p>
<?php else: ?>
<?php if($crumbs && is_array($crumbs)): ?>
<div class="breadcrumbs">
    <ul>
    <?php $charsges = 0; ?>
    <?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
        <?php
        $charsges = strlen($_crumbInfo['label']) + $charsges;
        if($charsges > 40){
            $chars = 18;
            if(strlen($_crumbInfo['label']) > $chars){
                $_crumbInfo['label'] = substr($_crumbInfo['label'], 0, $chars);
                $_crumbInfo['label'] = $_crumbInfo['label'].'..';
            }
        }
        ?>
        <li class="<?php echo $_crumbName ?>">
        <?php if($_crumbInfo['link']): ?>

        <a href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->htmlEscape($_crumbInfo['title']) ?>"><?php echo $this->htmlEscape($_crumbInfo['label']) ?></a>
        <?php elseif($_crumbInfo['last']): ?> …
Run Code Online (Sandbox Code Playgroud)

php zend-framework magento conditional-statements

9
推荐指数
1
解决办法
2万
查看次数

C++三元运算符执行条件

我不确定C/C++三元运算符的执行保证.
例如,如果给出一个地址和一个布尔值来告诉该地址是否适合阅读,我可以使用if/else轻松避免错误读取:

int foo(const bool addressGood, const int* ptr) {
    if (addressGood) { return ptr[0]; }
    else { return 0; }
}
Run Code Online (Sandbox Code Playgroud)

但是?:,ptr除非addressGood是真的,否则三元运算符()可以保证不会被访问?
或者优化编译器是否可以生成ptr在任何情况下访问的代码(可能使程序崩溃),将值存储在中间寄存器中并使用条件赋值来实现三元运算符?

int foo(const bool addressGood, const int* ptr) {
    // Not sure about ptr access conditions here.
    return (addressGood) ? ptr[0] : 0;
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

c c++ memory pointers conditional-statements

9
推荐指数
1
解决办法
2033
查看次数

python networkx删除某些条件的节点和边

在python库networkx中,我想删除具有某些属性的图的节点和边.例如,假设我想删除节点程度<2的所有节点和边缘.请考虑以下psuedocode:

vdict = g.degree_dict()         #dictionary of nodes and their degrees
g.remove_from_nodes(v in g s.t. vdict[v] < 2)
Run Code Online (Sandbox Code Playgroud)

我已经看到一些使用集合论符号的语法,但因为我仍然是python的新手,我不知道如何使用它.我如何将其转换为工作python代码?

python set conditional-statements networkx

9
推荐指数
2
解决办法
1万
查看次数

如果缺少Apt包,则应该执行任务

如果缺少特定的apt包,我正在寻找一系列任务.

例如:

如果没有安装石墨碳,请执行以下操作:

- apt: name=debconf-utils state=present
- shell: echo 'graphite-carbon/postrm_remove_databases boolean false' | debconf-set-selections
- apt: name=debconf-utils state=absent
Run Code Online (Sandbox Code Playgroud)

另一个例子:

如果未安装statsd,请执行以下操作:

- file: path=/tmp/build state=directory
- shell: cd /tmp/build ; git clone https://github.com/etsy/statsd.git ; cd statsd ; dpkg-buildpackage 
- shell: dpkg -i /tmp/build/statsd*.deb
Run Code Online (Sandbox Code Playgroud)

我怎么会开始破解这个?

我想也许我可以做某个-shell: dpkg -l|grep <package name>并以某种方式捕获返回代码.

apt conditional-statements ansible ansible-playbook

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

在特定控制器方法中为dataprovider设置where条件

我期待为控制器中的单个动作设置条件,所以我不想改变我的search模型.

我的代码看起来像这样:

public function actionRoles()
    {
        $searchModel = new EmployeeSearch();
        //$searchModel->query()->where('role <> regular');
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

        return $this->render('view_role', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
        ]);
    }
Run Code Online (Sandbox Code Playgroud)

通知行显示我的条件($searchModel->query()->where('role <> regular');),它非常简单,但我没有找到一个在线工作的解决方案.

作为参考,我试过这些:

search model dataprovider conditional-statements yii2

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