当前位置: 首页 > news >正文

Flutter Dart新特性NulI safety late 关键字、空类型声明符?、非空断言!、required 关键字

目录

late 关键字

required关键词:

常用的Model对象使用required


Null safety翻译成中文的意思是空安全
null safety 可以帮助开发者避免一些日常开发中很难被发现的错误,并且额外的好处是可以改善性能后的版本都要求使用nul1 safety。Flutter2.2.0(2021年5月19日发布)
?可空类型
!类型断言

main() {//非空的int类型 A value of type 'Null' can't be assigned to a variable of type 'int'.int? a = 123;a = null;String? name = "张三"; // ?表示可空类型name = null;List? list = ["张三", "李四", "王五"];list.add("1");list.add(null);print(list);print(getData(null));String? str = "我是张三";str = null;print(str?.length);print(str!.length); //类型断言 如果str不等于空,会打印str长度;否则,会抛出异常。
}// 方法定义可空类型?
String? getData(str) {if (str != null) {return "不是空的";}return null;
}// 类型断言
getData1(String? str) {try {print(str!.length);} catch (e) {print(e);}
}

late 关键字


应该修改为下面class Person{late String name; //Non-nullable instance field 'name' must be initialized.late int age;setPerson(String name, int age){this.name = name;this.age = age;}
}

required关键词:

最开始@required是注解
现在它已经作为内置修饰符。
主要用于允许根据需要标记任何命名参数(函数或类),使得它们不为空。因为可选参数中必须有个 require

main(){printInfo1("张三", age: 11, sex: "男士");
}printInfo1(String name, {required int age, required String sex}) {//匿名参数 行参print("$name----$sex---- $age");
}printInfo2(String name, {int age = 10, String sex = "男生"}) {//匿名参数 行参print("$name----$sex---- $age");
}

常用的Model对象使用required


class Person1 {String name; int age;Person1({required this.name,required this.age}); //表示 name、age必须传入的匿名参数setPerson(String name, int age) {this.name = name;this.age = age;}
}或者class Person2 {String? name; //可空属性int age;Person2({this.name,required this.age}); //表示 age必须传入的匿名参数setPerson(String name, int age) {this.name = name;this.age = age;}
}

http://www.xdnf.cn/news/169651.html

相关文章:

  • 跨域问题(Cross-Origin Problem)
  • 第二次作业
  • 使用 NServiceBus 在 .NET 中构建分布式系统
  • python文本合并脚本
  • Transformer四模型回归打包(内含NRBO-Transformer-GRU、Transformer-GRU、Transformer、GRU模型)
  • RabbitMQ应用(基于腾讯云)
  • 第十二章-PHP文件上传
  • 缺省处理、容错处理
  • 使用 OpenCV 和 dlib 进行人脸检测
  • 使用 Vue 3 开发桌面端应用的框架性能对比
  • golang goroutine(协程)和 channel(管道) 案例解析
  • 【Java】jdk动态代理
  • Flink02-学习-套接字分词
  • Web前端开发:CSS Float(浮动)与 Positioning(定位)
  • 数据结构——二叉树和堆(万字,最详细)
  • 【AI论文】RefVNLI:迈向可扩展的主题驱动文本到图像生成评估
  • SLAM技术:从原理到应用的全面解析
  • 计算机网络 | 应用层(6) -- 套接字编程
  • Java自定义注解详解
  • 「Mac畅玩AIGC与多模态01」架构篇01 - 展示层到硬件层的架构总览
  • 深度学习常见框架:TensorFlow 与 PyTorch 简介与对比
  • 在 Ubuntu 24.04 系统上安装和管理 Nginx
  • body Param Query 三个 不同的入参 分别是什么意思 在前端 要怎么传 这三种不同的参数
  • DAY7-C++进阶学习
  • Python爬虫课程实验指导书
  • 麒麟系统搭建离线NTP服务器,让局域网内windows系统同步其时间,并付排错避坑思路
  • Android Studio中创建第一个Flutter项目
  • 前端性能优化面试回答技巧
  • django admin 去掉新增 删除
  • 【愚公系列】《Manus极简入门》005-DeepSeek与Manus的创新之处