如何在扑镖中使用具有多种条件的三元运算符?

时间:2019-02-07 06:08:22

标签: dart flutter ternary-operator

如果使用“ OR”和“ AND”之类的两个或多个条件,如何使用三元数

    if(foo == 1 || foo == 2)
     {
      do something
      }
     {
      else do something
      } 

我想像

一样使用它
  foo == 1 || foo == 2 ? doSomething : doSomething

8 个答案:

答案 0 :(得分:1)

  

尝试以下

(2 > 3)?print("It is more than 3"):print("It is less than 3");
////Prints It is less than 3 to the console

答案 1 :(得分:1)

如果您在dart中引用else if语句,则此三元运算符:

public static boolean isEmulator() {
    return Build.FINGERPRINT.startsWith("generic")
            || Build.FINGERPRINT.startsWith("unknown")
            || Build.MODEL.contains("google_sdk")
            || Build.MODEL.contains("Emulator")
            || Build.MODEL.contains("Android SDK built for x86")
            || Build.MANUFACTURER.contains("Genymotion")
            || (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
            || "google_sdk".equals(Build.PRODUCT);
}

等效于此:

(foo==1)?something1():(foo==2)? something2():(foo==3)? something3(): something4()

答案 2 :(得分:1)

很容易,

if(foo == 1 || foo == 2)
 {
  do something
  }
 {
  else do something
  } 

因此可以写成OR语句

foo==1 || foo==2 ? do something : else do something

因此可以写成AND语句

foo==1 && foo==2 ? do something : else do something

两者都可以很好地工作

答案 3 :(得分:1)

为了 AND 试试这个, // 这里需要满足两个或多个条件

if (primaryImageUploaded == true && signatureImageUploaded == true) {
    // status bool condition in true 
    } else {
     // if false 
    }

对于或尝试这个, // 这里只需要满足任何一个条件

if (primaryImageUploaded == true || signatureImageUploaded == true) {
    // status bool condition in true 
    } else {
     // if false 
    }

另一种 Dart 语法

if (100 > 50) {
  print("100 is greater than 50");
 }

答案 4 :(得分:0)

这是一个相同的例子

Text((managerStatus == "pending")
    ? "Requested"
        : (adminStatus == "confirm")
    ? "Amount credited"
        : "Admin Pending")

答案 5 :(得分:-1)

对于三种情况,请使用:

value: (i == 1) ? 1 : (i == 2) ? 2 : 0

答案 6 :(得分:-1)

已编辑

原始答案与所提问题略有出入。下面是我编辑的答案。

使用三元运算符

(foo == 1 || foo == 2) ? doSomething() : doSomethingElse();

为了我的清洁方法

{1, 2}.contains(foo) ? doSomething() : doSomethingElse();

原始

对我来说更干净的方式是

if ({1, 2}.contains(foo)) {
  //do something
} else {
  //do something else
}

答案 7 :(得分:-2)

void main(){
  var a,b,c,d;  
  a = 7;  
  b = 9;  
  c = 11;  
  d = 15;  
  print((a>b)?((a>c)?((a>d)?a:d):c):(b>c)?((b>d)?b:d):(c>d)?c:d);
}