问:简化Flutter switch语句

问题描述 投票:0回答:1

如何简化flutter中的switch语句? 我发现他们在java字符串中有解决方案,它使用console.log,但我在flutter/dart中找不到解决方案。

例如我有下面的代码,是否可以简化? 基本上,它有 3 个变量,有 2 个条件“真/假”

bool checkUposatha = true;
bool newMoonOnly = true;
bool fullMoonOnly = false;

 switch (checkUposatha) {
    //Uposatha | newMoonOnly | fullMoonOnly
    case true:
      switch (newMoonOnly) {
        case true:
          switch (fullMoonOnly) {
            case true: //true|true|true
              if (mp == 3 || mp == 1) {
                print(printresult);
                break;
              }
              break;
            case false: //true|true|false
              if (mp == 3) {
                print(printresult);
              }
              break;
            default: //true|any|any
              print(printresult);
          }
          break;
        case false:
          switch (fullMoonOnly) {
            case true: //true/false/true
              if (mp == 1) {
                print(printresult);
              }
              break;
            case false: //true/false/false ==> same as default
              if (mp == 3 || mp == 1) {
                print(printresult);
              }
              break;
            default: //true/any/any
              if (mp == 3 || mp == 1) {
                print(printresult);
              }
              break;
          }

          break;
        default: //true/any/any
          if (mp == 3 || mp == 1) {
            print(printresult);
          }
          break;
      }
      break;
    case false: //false/false/false
      print(printresult);
      break;
    default: //any/any/any
      print(printresult);
      break;
  }

谢谢!

flutter dart logic
1个回答
0
投票

因此,在这种情况下,您必须使用 if else,并且语言在这里并不重要。因为您想要检查两种方式,例如,如果 newMoonOnly 为 true,您想要检查 fullMoonOnly 的状态,否则如果 newMoonOnly 为 false,您将再次尝试检查 fullMoonOnly 的状态。因此,在这种情况下,我建议在任何语言中使用if else。因为无论是在 c、c++、python 或 swift 中,你都必须使用 if else。

© www.soinside.com 2019 - 2024. All rights reserved.