Tag: 三元运算符

单行列表理解:if-else变体

这是关于Python列表理解语法。 我有一个列表理解产生给定范围的奇数列表: [x for x in range(1, 10) if x % 2] 这使得一个filter – 我有一个源列表,我删除偶数( if x % 2 )。 我想在这里使用if-then-else之类的东西。 以下代码失败: >>> [x for x in range(1, 10) if x % 2 else x * 100] File "<stdin>", line 1 [x for x in range(1, 10) if x % 2 else x * 100] […]

为什么三元运算符用来在macros中定义1和0?

我正在使用一个embedded式项目的SDK。 在这个源代码中,我发现了一些至less我觉得奇特的代码。 在SDK中的很多地方都有这种格式的源代码: #define ATCI_IS_LOWER( alpha_char ) ( ( (alpha_char >= ATCI_char_a) && (alpha_char <= ATCI_char_z) ) ? 1 : 0 ) #define ATCI_IS_UPPER( alpha_char ) ( ( (alpha_char >= ATCI_CHAR_A) && (alpha_char <= ATCI_CHAR_Z) ) ? 1 : 0 ) 这里使用三元运算符有什么区别吗? 是不是 #define FOO (1 > 0) 一样 #define BAR ( (1 > 0) […]

C#和Java三元运算符的区别(?:)

我是一个C#新手,我只是遇到一个问题。 处理三元运算符( ? : :)时,C#和Java是有区别的。 在下面的代码段中,为什么第四行不起作用? 编译器显示there is no implicit conversion between 'int' and 'string'的错误消息。 第五行不起作用。 两个List都是对象,不是吗? int two = 2; double six = 6.0; Write(two > six ? two : six); //param: double Write(two > six ? two : "6"); //param: not object Write(two > six ? new List<int>() : new List<string>()); //param: not […]

Java If语句的缩写

我知道有一种方法来写简短的forms的Java语句 if (city.getName() != null) { name = city.getName(); } else { name="N/A"; } 有没有人知道如何写一行以上5行以上的简短forms…

Angularjs if-then-elseexpression式的构造

我可以以某种方式在angularjsexpression式中使用if-then-else构造(ternary-operator),例如我有函数$ scope.isExists(item)必须返回bool值。 我想要这样的东西, <div ng-repeater="item in items"> <div>{{item.description}}</div> <div>{{isExists(item) ? 'available' : 'oh no, you don't have it'}}</div> </div> 我知道我可以使用返回string的函数,我很有趣的可能性,使用if-then-else构造到expression式中。 谢谢。

Java中的三元运算符只从Java 7开始评估一个expression式 – 在Java 1.6和更低版本中是不同的?

准备Oracleauthentication助理Java SE 8 Programmer 1考试,我在以下段落中看到官方学习指南中的三元expression: 三元expression评估 从Java 7开始,只有一个三元运算符的右边expression式将在运行时被评估。 以类似于短路运算符的方式,如果三元运算符中的两个右手expression式中的一个performance出副作用,那么它可能不会在运行时被应用。 我们用下面的例子来说明这个原理:[…] 它说只有两个expression式中的一个被评估,用下面的例子来演示: int y = 1; int z = 1; int a = y < 10 ? y++ : z++; 在这里,只有y增量,但是z并不如你所期望的那样。 我所踌躇的是这个段落的开头(用黄色标出),它表示“从Java 7开始……”。 我用Java 1.6testing了相同的代码,并且在行为上找不到差别。 我期望Java 1.6只是根据段落中给出的信息来评估这两个expression式。 有没有人有一个想法,他们想说“从Java 7,…”? 编辑:为了避免混淆:它归结为这样一个问题:自从他们编写“从Java 7开始”,从Java 6切换到Java 7时,是否有任何关于三元运算符的变化?

Java三元运算符与if / else <JDK8兼容性

最近我正在阅读Spring框架的源代码。 我不明白的东西在这里: public Member getMember() { // NOTE: no ternary expression to retain JDK <8 compatibility even when using // the JDK 8 compiler (potentially selecting java.lang.reflect.Executable // as common type, with that new base class not available on older JDKs) if (this.method != null) { return this.method; } else { return this.constructor; } } […]

CoffeeScript中的三元操作

我需要设定一个值,取决于一个条件。 用CoffeeScript做这个最简单的方法是什么? 例如,这是我如何在JavaScript中做到这一点: a = true ? 5 : 10 # => a = 5 a = false ? 5 : 10 # => a = 10

由三元运算符产生的意外types

我试图写一个方法得到一个double ,validation数字是否有点后面的东西,如果它返回一个double ,如果不返回一个int 。 public class Solution { public static void main(String[] args) { double d = 3.000000000; System.out.println(convert1(d)); System.out.println(convert2(d)); } static Object convert1(double d) { if(d % 1 == 0) return (int) d; else return d; } static Object convert2(double d) { return ((d%1) == 0) ? ((int) (d)) : d; } } 输出: […]

inline.js中的内联条件

我想知道是否有一种angular度有条件地显示内容,而不是使用ng-show等。例如在backbone.js我可以做一些内联内容在模板中,如: <% if (myVar === "two") { %> show this<% } %> 但是在angular度上,我似乎仅限于显示和隐藏包装在html标签中的东西 <p ng-hide="true">I'm hidden</p> <p ng-show="true">I'm shown</p> 什么是angular度推荐的方式来有条件地显示和隐藏内联angular度内容,而不是用html标签包装内容?