Flutter & Dart:枚举示例

举报
坚果的博客 发表于 2022/06/17 12:47:31 2022/06/17
【摘要】 作者:坚果公众号:"大前端之旅"华为云享专家,InfoQ签约作者,OpenHarmony布道师,,华为云享专家,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,鸿蒙,小程序,安卓,VUE,JavaScript。Flutter & Dart:枚举示例本文将向您展示如何在 Dart 和 Flutter 中使用枚举(也称为枚举或枚举类型...

作者:坚果

公众号:"大前端之旅"

华为云享专家,InfoQ签约作者,OpenHarmony布道师,,华为云享专家,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,鸿蒙,小程序,安卓,VUE,JavaScript。


Flutter & Dart:枚举示例

本文将向您展示如何在 Dart 和 Flutter 中使用枚举(也称为枚举或枚举类型)。

概述

Dart 中的枚举是一组符号名称(成员),绑定到唯一的常量值。在枚举中,成员可以通过身份进行比较,并且可以迭代枚举本身。

可以使用enum关键字声明枚举:

enum Aniaml {dog, cat, chicken, dragon}

枚举的每个值都有一个索引。第一个值的索引为0

您可以使用values常量检索枚举的所有值:

print(Aniaml.values);
// [Aniaml.dog, Aniaml.cat, Aniaml.chicken, Aniaml.dragon]

一个完整的例子

编码:

// Declare enum
enum Gender {
  Male,
  Female
}
​
// Make a class
class Person {
  final String name;
  final int age;
  final Gender gender;
  
  Person(this.name, this.age, this.gender); 
}
​
// Create an instance
final personA = Person("John Doe", 40, Gender.Male); 
​
void main(){
  if(personA.gender == Gender.Male){
    print("Hello gentleman!");
  } else {
    print("Hello lady!");
  }
}

输出:

Hello gentleman!


Flutter & Dart:检查一个日期是否在另外两个日期之间

要检查日期是否在 Flutter 和 Dart 中的另外两个日期之间,可以使用DateTime类的isBefore()isAfter()方法。

例子

import 'package:flutter/foundation.dart';
​
DateTime dateA = DateTime(1900, 9, 14);
DateTime dateB = DateTime(2000, 10, 15);
​
DateTime dateC = DateTime(1984, 12, 20);
DateTime dateD = DateTime.now();
​
void main() {
  if (dateA.isBefore(dateC) && dateB.isAfter(dateC)) {
    debugPrint("dateC is between dateA and dateB");
  } else {
    debugPrint("dateC isn't between dateA and dateC");
  }
​
  if (dateA.isBefore(dateD) && dateB.isAfter(dateD)) {
    debugPrint("dateD is between dateA and dateB");
  } else {
    debugPrint("dateD isn't between dateA and dateC");
  }
}

输出:

dateC is between dateA and dateB
dateD isn't between dateA and dateC

您可以在官方文档中找到有关 DateTime 类的更多信息。

下一步是什么?

你已经在 Dart 和 Flutter 中学习了枚举的基础知识。学习更多关于dart的知识可以关注我。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。