Flutter Dart操作符

news2024/9/21 3:02:31

        常见的操作符大家都知道就不多介绍了,主要来看看Java所没有的。

类型判定操作符

    asis、 和 is! 操作符是在运行时判定对象 类型的操作符

操作符解释
as类型转换
is如果对象是指定的类型返回 True
is!如果对象是指定的类型返回 False

    as 操作符把对象转换为特定的类型,但是如果无法完成转换则会抛出一个异常

    is 和Java中的 instanceof 相同

void main(){
  var age = 15;
  //Age类型:int,属于String:false
  print("Age类型:${age.runtimeType},属于String:${age is String}");
  //Age类型:int,不属于String:true
  print("Age类型:${age.runtimeType},不属于String:${age is! String}");

}

赋值操作符

    =+=\=*=这些不必多说,还有一个 ??= 操作符用来指定 值为 null 的变量的值

  String? b ;
  b??="scc";
  //如果 b 是 null,则 "scc" 赋值给 b
  print(b);//scc

  b??="Dart";
  //如果不是 null,则 b 的值保持不变
  print(b);//scc

条件表达式

        Dart 有两个特殊的操作符可以用来替代 「if-else」 语句:

  • bool ? a : b (三元运算符)

    如果条件bool为真,则执行 a,否则执行 b

  • a ?? b

    如果a不为 null,则返回其值,否则返回b值。

  print(age==15?"15岁":"不是15岁");//15岁
  print(age>18?"成年了":"未成年");//未成年
  
  var name;
  //name的值null,??返回:scc
  print("name的值$name,??返回:${name??"scc"}");
  
  name = "dart";
  //name的值dart,??返回:dart
  print("name的值$name,??返回:${name??"scc"}");

级联操作符

        级联操作符 (..) 可以在「同一个对象上 连续调用多个函数以及访问成员变量」。 使用级联操作符可以避免创建 临时变量, 并且写出来的代码看起来 更加流畅:

void main(){
  User user = User();
  //姓名:scc ,年龄:15,序号:1
  print(user.toString());
  user..setName("beter")
    ..setAge(16)
    ..setId(2);
  //姓名:beter ,年龄:16,序号:2
  print(user.toString());
}
class User{
  var name = "scc";
  var age = 15;
  var id = 1;
  @override
  String toString() {
    return "姓名:$name ,年龄:$age,序号:$id";
  }
  void setName(String name){
    this.name = name;
  }
  void setAge(int age){
    this.age = age;
  }
  void setId(int id){
    this.id = id;
  }
}

安全操作符

        Dart提供了 ?.操作符。左边的操作对象 如果 为 null 则返回 null

    ? 允许变量为null

  User? user2;
  //编译不通过,可能位null
  //print(user2.name);
  print(user2?.name);//null
  user2 = User();
  print(user2?.name);//scc
  String? a;
  //编译不通过,
  //print(a.length);
  print(a?.length);//null
  a = "scczs";
  print(a?.length);//5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/675639.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何加入开源社

开源社成立于 2014 年,是由志愿贡献于开源事业的个人成员,依 “贡献、共识、共治” 原则所组成,始终维持厂商中立、公益、非营利的特点,是最早以 “开源治理、国际接轨、社区发展、项目孵化” 为使命的开源社区联合体。开源社积极…

chatgpt赋能python:Python生成GUID:让你的代码变得更加唯一

Python生成GUID:让你的代码变得更加唯一 在现代软件开发领域中,一个核心的问题是如何确保代码生成的ID是唯一的。通过Python语言生成全球唯一标识符(GUID)是一个非常流行的方法,而且是非常容易实现的。 什么是Python…

FutureTask源码

介绍 在创建线程的方式中,我们可以直接继承Thread和实现Callable接口来创建线程,但是这两种创建线程的方式不能返回执行的结果。于是从JDK1.5开始提供了Callable接口和Future接口,这两种创建线程的方式可以在执行完任务之后返回执行结果。 …

Java8 LocalDateTime获取当前周是本年第几周weekOfYear,用WeekFields

Java8 LocalDateTime获取当前周是本年第几周weekOfYear, 可用WeekFields LocalDateTime 没有直接获得 weekOfYear 的方法 LocalDateTime 有一个 get(TemporalField field) 方法, 返回 int public int get(TemporalField field) {if (field instanceof ChronoField chronoFiel…

读发布!设计与部署稳定的分布式系统(第2版)笔记09_一窝蜂和容量

1. 停电事故后电力恢复的方式 1.1. 停电后常见的情形是,送电几秒钟后又再次断电 1.2. 数百万台空调和冰箱的用电需求,使刚刚恢复的电力供应发生过载 1.3. 当电力供应不足时,增加的电流很快就到达满负荷,导致过载,触…

chatgpt赋能python:Python中的点形状:了解点与其表现形式

Python中的点形状:了解点与其表现形式 在Python编程中,点是一种十分重要的形状,它不仅可以用来表示数据结构中的节点,还可以用来绘制图形。本篇文章将介绍Python中点形状的表现形式和相关知识点。 点的表现形式 在Python中&…

跨 OT 部门管理来自新兴技术的网络风险挑战

本文首发微信公众号网络研究院,关注获取更多。 随着 AI 和自动化工具被引入企业,解决这些新技术(包括 OT 环境中的生成 AI)带来的网络风险需要一种综合方法。 这些新兴技术进步可以在 OT(运营技术)基础设…

【夜深人静写数据结构与算法 | 第八篇】哈希算法与哈希表

目录 前言: 哈希: 哈希表: 哈希表组成: 哈希表实例: 哈希函数: TIPS: 总结 前言: 如果此时我要你默写一个有一百位的数字,你要如何做才能保证不会漏写呢&#xf…

Jenkins安装手册

Jenkins安装手册 一、前期准备工作 因为我是在Windows系统上连接Linux服务器以及需要把在Windows系统下载的安装包上传到Linux系统,所以需要用到两个工具---putty 和FileZilla。 Putty是一个免费的、Windows 32平台下的telnet、rlogin和ssh客户端,但是…

IDEA新UI速览,成了VS Code的样子?

IntelliJ IDEA 2023.1 现已发布。此版本包括对新 UI 的改进,根据从用户那里收到的反馈进行了彻底改造。此外还实现了性能增强,从而在打开项目时更快地导入 Maven 和更早地使用 IDE 功能。由于采用了 background commit checks,新版本提供了简…

【首发】随身wifi编译/使用ffmpeg方法,包含openwrt和debian

目录 1.硬件改造 2.软件改造 3.下一步计划 背景是23年4月入了随身wifi的坑后,发现除了硬件上的改造,软件的可玩性也很大,网上可以找到不少打印机,直播推流,甚至家庭智能硬件的改造教程。笔者是因为改造遥控小车&…

【前端】Element-UI和Element-Plus的区别

文章目录 对移动端支持区别框架区别开发中使用的区别el-tableel-dialogel-buttonel-date-pickerel-iconechartsIcon图标库变化了组件的插槽slot使用变化了新增组件 来源 对移动端支持区别 Element-UI对应Element2:基本不支持手机版 Element-Plus对应Element3&…

chatgpt赋能python:Python生成A到Z的SEO

Python 生成A到Z的SEO Python 是一种简单易学、功能强大的编程语言,它不仅可用于数据分析、机器学习等领域,还可以用于 SEO 工作中的自动化。在 SEO 中,我们常需要生成不同字母序列来作为页面的标题标签(Title Tag)&a…

Unencode

打开得到一串密文,看题目形式应该也是一个编码格式 果然是,直接利用网上工具解码就得到flag Uuencode编码 稍微了解了一下Uuencode编码的方式: Uuencode是二进制信息和文字信息之间的转换编码,也就是机器和人眼识读的转换。Uuenco…

从MVC到MVVC:软件架构的演变和迭代

文章目录 1.引言介绍MVC和MVVC架构1. MVC架构2. MVVC架构 2.MVC架构什么是MVC架构MVC的组成部分及其作用1. 模型(Model)2. 视图(View)3. 控制器(Controller) MVC的优点和缺点 3.MVVC架构什么是MVVC架构1. 模型(Model)2. 视图(View)3. 视图模型(View Model) MVVC的组成部分及其作…

2022(一等奖)B22基于时空大数据的多维分析与传统二维分析相结合的大气污染变化研究方法探索

作品介绍 1 作品背景及研究对象 1.1 背景及必要性介绍 2022年春节期间,山东及多地的部分省市明确了禁放烟花爆竹的规定,直接表明了当今大气污染变化的严峻形势,燃放烟花爆竹会严重影响空气环境质量,加剧雾霾天气,产生…

【Linux】CentOS7 设定虚拟机时间为本机当前地区时间的简单操作

目录 情景系统环境操作 情景 新安装的虚拟机时间和当前本地系统时间不一致,现在想要将虚拟机和本机地区的时间调节为一致。 系统环境 CentOS Linux 7 系统界面大致如此。 操作 点击虚拟机界面左上角的 Applications 选项, 选择System-Tools-- Sett…

熵、KL散度和交叉熵

首先我们需要知道,所有的模型都可以看作是一个概率分布模型,包括人脑进行图像分类时也可以看作是一种完美的模型 1、信息量 如果学过通信应该知道香农定义了信息量的的概念,我们能够理解一件事情信息量很大或者很小,但是如何用数…

操作系统 - 进程和线程

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

陈香菲九价疫苗接种sop

前文 什么时间 正常时间 ● 正常接种按照接种时间,需要在2023-06-28 08:00-17:00 前往指定卫生院预防接种门诊进行接种。 时间异议 ● 正常来说如果接种时间内来大姨妈或者最近有服用一些药物的话是不能进行接种的,具体药物品…