dart if case 的简单实用

63 阅读1分钟

1 List操作

var value = <String>["1","2","3"];

if(value case List() when value.length > 2){
  print("success——1");
}

if(value case List(:final length,:final last,:final first) when length == 3 && last == "3" && first == "1"){
  print("success——2");
}

switch(value){
  case List(:final length,:final last,:final first) when length == 3 && last == "3" && first == "1":
    print("success——3");
    break;
}

2 对象操作

void testMethod(){

  var user = User()
    ..userName = "UserName"
    ..id = "1";

  if(user case User(:final userName,:final id) when userName == "UserName" && id == "1"){
    print("success");
  }

  switch(user){
    case User(:final userName,:final id) when userName == "UserName" && id == "1":
      print("success-1");
      break;
  }
}

class User {
  var userName = "";
  var password = "";

  var _id = "";

  String get id => _id;

  set id(String value) {
    if (value != id) {
      _id = value;
    }
  }
}