首页 > 其他分享 >dart特殊符号语法(一)

dart特殊符号语法(一)

时间:2024-03-05 12:12:00浏览次数:31  
标签:个人见解 arr Value dart 语法 variable null 特殊符号 问号

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

标签:个人见解,arr,Value,dart,语法,variable,null,特殊符号,问号
From: https://www.cnblogs.com/binghandsom/p/18053719

相关文章

  • python 语法之 print 函数和 input 函数
    print函数input函数案例一:圆的周长importmaths=input("圆的半径:\n")s=float(s)c=2*math.pi*sprint(f"圆的周长,{c:.2f}")w=input("请输入天气情况(可选项:晴、阴):")ifw=="晴天":print("play")else:print(f"天气{w}不玩")......
  • python基础语法
    (1)注释注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性。一般情况下,合理的代码注释应该占源代码的1/3左右。注释只是为了提高公认阅读,不会被解释器执行。Python......
  • Mysql基本语法笔记
    DDL--操作数据库1.查询SHOWDATABASES;2.创建CREATEDATABASE数据库名称CHARACTERSETutf8;如果不存在创建CREATEDATABASEIFNOTEXISTS数据库名称;3.删除DROPDATABASE数据库名称;如果存在删除DROPDATABASEIFEXISTS数据库名称;4.使用数据库查看当前数......
  • 基础语法
    python数据类型1.数值类型counter=100#赋值整型变量miles=1000.0#浮点型name="John"#字符串print(counter)print(miles)print(name)2.字符串str1="helloworld"print(str1[1:3])#显示el左闭右开[1,3)str1="helloworld"print(str1[0])pri......
  • Java:基础语法
    注释平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到一个注释了,注释就类似于我们上学时候写的笔记,我们看着笔记就知道自己写的什么东西了!在程序中也是如此。我们来看一下Java中的注释怎么写,看以下代码:/**@DescriptionH......
  • Markdown基础语法学习小结
    一、前言Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。--摘自百度百科对于程序员来说,学习并记录到博客中是非常好的学习习惯,能提升学习效果,本来想要自己搭建一个博客网站,但重心在于学习上,就不花太多时间精力......
  • Vue 3.0 模板语法
    Vue.js使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层组件实例的数据。所有Vue.js的模板都是合法的HTML,所以能被遵循规范的浏览器和HTML解析器解析。在底层的实现上,Vue将模板编译成虚拟DOM渲染函数。结合响应性系统,Vue能够智能地计算出最少需要重新渲......
  • Java基础语法
    注释注释不参与编译和运行修改注释颜色  关键字被Java赋予了特定含义的英文单词,所以关键字不能被我们使用字面量 标识符数据类型Scanner键盘录入......
  • Java基础语法
    前言创建Java文件注意事项运行IntelliJIEDA点击空项目创建JavaSE点击导航栏>文件>新建>类模块>创建名:基础语法(不支持中文可以展开下面的高级栏输入,直接英文也可以不影响)创建完成后直接多次点击基础语法打开项目结构选中项目(也就是第一项),看到SDK栏目报红需......
  • rust与python/c++语法区别
    if/matchpubfnanimal_habitat(animal:&str)->&'staticstr{letid=ifanimal=="crab"{//id等于(或拥有)了一个匿名函数的返回值1}elseifanimal=="gopher"{2}elseifanimal=="snake"......