许久没有写博客。浏览以往的博客,是那么稚嫩。就让它们当成成长的照片吧。重新开始操起这个记录的爱好,一方面把它当成可以查阅的资料,方便自己;另一方面希望有帮助于人。由于个人能力,认知有限,如读者发现有纰缪之处,希望不吝指教。

今天分享下dart语言中的特殊符号语法使用。

?(问号)(Question mark)语法

dart3.0之后增加了?语法。

?定义变量

例子

String? variable = null;

解释

声明一个变量,这个变量可以是null。

当使用这个变量的方法时,需要先进行判定是否为null。这样来满足dart3.0的null compatible特性:

print(varialbe?.toLowerCase());

当编译器走到这里时,因看到variable是null,并且定义时就已经知道它潜在有可能是null,这是编程者设计时就已经预想到的,使用时有进行空预判(?.)所以就不再报错。

个人见解

增加了编程的可活跃范畴,是一个解放。Not bad!!!

?.引用也许是null的变量的函数、属性

例子

varialbe?.toLowerCase()

解释

再调用toLowerCase()方法前进行判定,如null则停止当前toLowerCase()的编译,但是整个编译流程会继续进行,而不把它当成是错误。这个通常和?定义一起配合使用。

个人见解

增加了编程的可活跃范畴,是一个解放。Not bad!!!

??双问号

例子

print(variable??"Other Value")

解释

假如不是空,那么使用它,假如是空,那么赋值为"Other Value"。

个人见解

通常用于取值时,短小精悍。你还能想到更简洁的处理吗?Brilliant!!!

??=双问号等号

例子

variable??="Another Value";

解释

假如不是空,那么就让它保持原样,假如是空,那么赋值为"Another Value"

个人见解

通常用于再赋值,短小精悍。你还能想到更简洁的处理吗?Brilliant!!!

...?三个点问号组合

例子

List? arr=[2,3,7];

[...?arr,8]

解释

假如arr不是空,那么就延长数组并假如新元素8;假如arr是空,那么就不对arr进行任何操作。

个人见解

通常用于数组增加元素,短小精悍。你还能想到更简洁的处理吗?Brilliant!!!

问号?与感叹号!的区别

当我们使用问号进行判定引用变量时及时是空也可以编译通过。如果是使用感叹号判定引用,那么再值为空时会就行throw exception。要使用何种,要根据您的程序场景需求。

关于late

例子

Class _MainPageState extends State{

late String variable;

@override

void initState(){

super.initState();

variable="Value";//如果没有这个赋值,那么将会抛出异常

}

}

解释

late 是一个承诺,答应的晚些做的事情,是必须要做的。

个人见解

对于一些需要网络读取,或者文件加载等类似慢获取的变量一般很适合使用。

2024-03-05 11:17:07 星期二(于常州)

dart特殊符号语法(一)的更多相关文章

  1. 史上最全的LaTeX特殊符号语法

    史上最全的LaTeX特殊符号语法 运算符 语法 效果 语法 效果 语法 效果 + \(+\) - \(-\) \triangleleft \(\triangleleft\) \pm \(\pm\) \ ...

  2. dart的基本语法(一)

    Hello world ​ 安装dart的环境就不赘述了,无脑安装就可以了,安装过程中好像需要梯子(vpn),我装的时候失败好多次,我的梯子不能用了,准备不装了的时候,莫名其妙的装好了.迷の操作.惯例 ...

  3. Typora 使用 Markdown 嵌入 LaTeX 数学公式符号语法

    博客园不支持渲染 LaTeX 数学公式,需要用到什么公式,请复制到您所用的支持 LaTeX 的编辑器中查看实现效果.Typora 可以渲染 LaTeX 数学公式. 目录 行内与独行 行内公式 独行公式 ...

  4. markdown特殊符号语法

    符号 说明           对应编码 &    AND符号        & < 小于           < > 大于           > _    ...

  5. Dart Memo for Android Developers

    Dart Memo for Android Developers Dart语言一些语法特点和编程规范. 本文适合: 日常使用Kotlin, 突然想写个Flutter程序的Android程序员. Dar ...

  6. flutter--Dart基础语法(一)

    一.前言 Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,Flutter 开源.免费,拥有宽松的开源协议,支持移动.Web.桌面和嵌入式平台. ...

  7. Flutter教程- Dart语言规范-知识点整理

    Flutter教程- Dart语言知识点整理 Dart语言简介 Dart语言介绍 ① 注释的方式 ② 变量的声明 ③ 字符串的声明和使用 ④ 集合变量的声明 ⑤ 数字的处理 ⑥ 循环的格式 ⑦ 抛异常 ...

  8. CTEX里的函数、符号及特殊字符

    CTEX里的函数.符号及特殊字符 声调 语法 效果 语法 效果 语法 效果 \bar{a}   \acute{a}   \check{a}   \grave{a}   \tilde{a}   \hat ...

  9. 【转】LaTeX 符号命令大全

    函数.符号及特殊字符 声调 语法 效果 语法 效果 语法 效果 \bar{x} \acute{\eta} \check{\alpha} \grave{\eta} \breve{a} \ddot{y} ...

  10. LaTeX 各种命令,符号

    函数.符号及特殊字符 声调 语法 效果 语法 效果 语法 效果 \bar{x} \acute{\eta} \check{\alpha} \grave{\eta} \breve{a} \ddot{y} ...

随机推荐

  1. js计算两个时间相差多少分钟

    <script> var str = "2020-02-04" console.log(str) console.log(str.replace(/-/g, " ...

  2. elementui出现展开后子菜单宽度多出1px问题

    添加 就可以解决了 .el-menu { border-right-width: 0; } <template> <div class="compen-left-men&q ...

  3. 【第4个渗透靶机项目】 Tr0ll

    每天都要加油哦! 0x00  信息搜集 首先找到一下靶机的ip,并扫描端口. 靶机和kali都是桥接. 那么先看一下kali的ifconfig信息. nmap -sn 192.168.0.0/24  ...

  4. 即时通讯(IM)开源项目OpenIM每周迭代版本发布-音视频实时通话-v2.0.4

    介绍 OpenIM每周五发布新版,包括新特性发布,bug修复,同时合并PR 由于2.0版本重构完毕,架构更清晰,代码更规范,先邀请各位参与OpenIM社区建设,包括技术开发,技术分享等,特性开发,性能 ...

  5. easyui 使用不同的url以获取不同数据源信息

    转载 https://www.bbsmax.com/A/kjdw1x06JN/ https://blog.csdn.net/lixinhui199/article/details/50724081 参 ...

  6. 关于git pull机制和游戏开发热更新思考

    前言 今天由于网速很慢,在git pull更新时我观看了git pull的日志,让我联想到和我现在从事的游戏开发中的热更热有一定的相似性,把思绪记录下来. ​ git pull 日志 使用tortoi ...

  7. paddle DeBug 三步定位PARL飞桨报错原因,快速解决程序问题

    相关文章: [一]-环境配置+python入门教学 [二]-Parl基础命令 [三]-Notebook.&pdb.ipdb 调试 [四]-强化学习入门简介 [五]-Sarsa&Qlea ...

  8. Python 实现专属字典生成器

    编写一个密码生成工具,这里我们使用弱密码与个性化数组组合形成一个定制字典,例如收集用户的姓名,昵称,QQ号手机号等资源,然后通过Python对搜集到的数据与弱密码进行结合,从而定制出属于某个人的专属密 ...

  9. Protobuf之proto基础语法

    目录 1.说明 2.字段类型 3.字段规则 4.字段编号 5.注释 6.类型 6.1.message 6.2.service 7.枚举enum 8.保留字段 9.import 9.1.protoc指令 ...

  10. (C语言)每日代码||2023.12.24||printf换行的三种方法

    #include <stdio.h> int main() { //printf()函数不同参数间可以换行 printf("num one : %d,num two : %d&q ...