当前位置: 首页 > 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;}
}

相关文章:

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

目录 late 关键字 required关键词: 常用的Model对象使用required Null safety翻译成中文的意思是空安全 null safety 可以帮助开发者避免一些日常开发中很难被发现的错误,并且额外的好处是可以改善性能后的版本都要求使用nul1 safety。Flutter2.2.0(2021年5月19日…...

CF2096G Wonderful Guessing Game 构造

题解 首先考虑没有 ? ? ? 回答的时候,答案是多少。 猜猜需要多少个询问。 ⌈ log ⁡ 2 n ⌉ ? ⌈ log ⁡ 3 n ⌉ ? \lceil \log_2n\rceil ? \lceil \log_3n\rceil ? ⌈log2​n⌉?⌈log3​n⌉? 可以构造一个表,行表示不同的询问,…...

制作一款打飞机游戏26:精灵编辑器

虽然我们基本上已经重建了Axel编辑器,但我不想直接使用它。我想创建一个真正适合我们当前目的的编辑器,那就是编辑精灵(sprites)。这将是今天的一个大目标——创建一个基于模板的编辑器,用它作为我们实际编辑器的起点。…...

深入Java JVM常见问题及解决方案

1. 简介 Java虚拟机(JVM)是Java程序运行的核心环境,但其复杂性可能导致内存泄漏、性能下降、类加载失败等问题。本文从内存管理、垃圾回收、性能调优、异常处理四大方向,结合工具使用与实战案例,详解JVM问题的排查与解…...

【MySQL】Java代码操作MySQL数据库 —— JDBC编程

目录 1. Java的JDBC编程 1.1 Java的数据库编程:JDBC 1.2 JDBC工作原理 1.3 如何在项目中导入数据库驱动包 如何下载数据库驱动包 jar包如何引入项目中 2. 编写JDBC代码 1. 创建并初始化一个数据源(DataSource) 2. 和数据库服务器建立连接 3. 构造 SQL 语句…...

Marmoset Toolbag 5.0 中文汉化版 八猴软件中文汉化版 免费下载

八猴安装包下载链接 https://pan.baidu.com/s/1Mgy3Mrlrb3Tvtc8w7Zn1nA?pwd6666 提取码:6666 Marmoset Toolbag是由Monkey公司推出一款专业动画渲染软件,也叫做八猴渲染器。该软件主要特征功能是可以进行实时模型观察、材质编辑和动画预览,…...

Java编程中常见错误的总结和解决方法

1. 找不到文件 问题描述:尝试编译一个名为ChangeCha.java的文件,但编译器找不到这个文件。错误信息:javac: 找不到文件: ChangeCha.java解决方法:检查文件名是否正确,文件是否存在于当前目录,或者路径是否…...

【GESP】C++三级练习 luogu-B2114 配对碱基链

GESP三级练习,字符串练习(C三级大纲中6号知识点,字符串),难度★✮☆☆☆。 题目题解详见:https://www.coderli.com/gesp-3-luogu-b2114/ 【GESP】C三级练习 luogu-B2114 配对碱基链 | OneCoderGESP三级练…...

C++类设计新思路:封装结构体成员变量

C++类设计新思路:封装结构体成员变量 引言 在C++编程里,类是封装数据和行为的重要手段。常规的类设计直接把成员变量定义在类中,再通过成员函数访问和修改这些变量。不过,有时候我们可以采用不同的设计思路,例如将成员变量封装到结构体里,这样可能会带来一些好处。本文…...

图像预处理-形态学变换

针对二值化图像,其有两个输入,一个输出:输入为原图像、核(结构化元素),输出为形态学变换后的图像。基本操作有腐蚀和膨胀。 一.核 联想到之前的卷积核,也是一种核。 此时的核就跟卷积核不太一…...

关于百度模型迭代个人见解:技术竞速下的应用价值守恒定律

就在前天,在 2025 年 4 月 25 日的百度 Create 开发者大会上,文心大模型 4.5 Turbo 与 X1 Turbo 的发布再次将 AI 行业带入 "涡轮加速" 时代。这两款模型不仅在多模态理解、逻辑推理等核心指标上实现突破,更以80% 的价格降幅重塑行…...

从基础到实战的量化交易全流程学习:1.3 数学与统计学基础——概率与统计基础 | 基础概念

从基础到实战的量化交易全流程学习:1.3 数学与统计学基础——概率与统计基础 | 基础概念 第一部分:概率与统计基础 第1节:基础概念:随机变量、概率分布、大数定律与中心极限定理 一、随机变量与概率分布:用数学描述市场…...

混沌工程领域常用工具的对比分析

以下是混沌工程领域常用工具的对比分析,涵盖主流工具的核心功能、优势、适用场景及局限性,帮助技术团队根据自身需求选择合适的工具: 一、故障注入工具对比 工具核心特点优势适用场景局限性生态集成开源/付费Chaos MonkeyNetflix 开源,随机终止生产环境实例,模拟硬件/进程…...

LINUX的使用(2)- 安装软件

0.防火墙相关 启动防火墙: sudo systemctl start firewalld #查看防火墙列表 firewall-cmd --list-ports 设置防火墙开机自启: sudo systemctl enable firewalld 检查防火墙状态: sudo firewall-cmd --state 允许某个端口(如端…...

一主多从+自组网络,无线模拟量信号传输专治布线PTSD

无线模拟量信号传输模块通过无线方式实现模拟量信号的传输,采集工业现场标准4~20mA电流信号,并将其转换为无线信号进行传输。 以下是关于无线模拟量信号传输模块实现无线模拟量信号传输的详细介绍: 一、模块原理 无线模拟量信号传输模块的…...

IDEA中使用Git

Git工作流程 创建远程仓库 现在我们已经在本地创建了一个Git仓库,但是这只能满足我们单人开发,如果想要团队协作,还需要一个远程仓库 目前比较流行的远程仓库,有下面这两个: github:https://github.com …...

Go RPC 服务方法签名的要求

在 Go 中,RPC 方法的签名有严格的要求,主要是为了保证方法的调用能够通过网络正确地传输和解析。具体要求如下: 1. 方法必须是导出的 RPC 服务的方法必须是导出的(即首字母大写)。这是因为 Go 的反射机制要求服务方法…...

Ant(Ubuntu 18.04.6 LTS)安装笔记

一、前言 本文与【MySQL 8(Ubuntu 18.04.6 LTS)安装笔记】同批次:先搭建数据库,再安装JDK,后面肯定就是部署Web应用。其中Web应用的部署使用 Ant 方式,善始善终,特以笔记。 二、准备 &#xf…...

相机DreamCamera2录像模式适配尺寸

在开发中遇到 一个问题,相机切换视频模式时,预览时,界面不能充满屏幕两侧有黑边,客户要求修改,在此记录 一问题现象: 系统相机在视频模式下预览时如下现象如图1,期望现象如图2: 图1 …...

Animate 中HTMLCanvas 画布下实现拖拽、释放、吸附的拼图游戏

1.舞台上物体拖拽 2.松手以后,检查是否移动到范围内,是则自动吸附 3.播放音效 4.变量1,显示在舞台的动态文本中 1.实现拖拽 下面代码实现拖拽和释放 地图模块 //记录原始位置 var OriXthis.my_mc.x; var OriYthis.my_mc.y;this.my_mc.on(&q…...

第十一章-PHP表单传值

第十一章-PHP表单传值 一&#xff0c;核心概念 1. 表单的基本结构&#xff08;HTML&#xff09; 通过HTML的<form>标签定义表单&#xff0c;关键属性包括&#xff1a; action: 指定处理表单数据的PHP脚本路径&#xff08;如action"process.php"&#xff09…...

互联网大厂Java求职面试:从Java核心到微服务的深度探索

场景引入: 在一个阳光明媚的早上,谢飞机满怀信心地走进了一家知名互联网大厂的面试房间。面试官坐在桌子的另一端,手中拿着一份简历,面带微笑地开始了今天的面试。 第一轮提问:核心语言与平台 面试官: "谢飞机,你好。我看到你熟悉Java SE,能不能简单介绍一下Ja…...

微服务即时通信系统(十二)---入口网关子服务

目录 功能设计 模块划分 业务接口/功能示意图 服务实现流程 网关HTTP接口 网关WebSocket接口 总体流程 服务代码实现 客户端长连接管理封装(connectionManage.hpp) proto文件的编写 身份鉴权proto 事件通知proto 各项请求的URL的确定 服务端完成入口网关服务类…...

ES练习册

es索引结构和数据实例 这里提供索引结构和数据实例提供给大家使用练习&#xff0c;希望大家能够一起成长进步~~~~ #添加索引 PUT /ecommerce_products {"settings": {"number_of_shards": 3,"number_of_replicas": 1,"analysis": {&…...

运算符分为哪几类?哪些运算符常用作判断?简述运算符的优先级

运算符主要分为以下几类‌&#xff1a; ‌算术运算符‌&#xff1a;用于执行基本的数学运算&#xff0c;如加、减、乘、除、取模等。例如&#xff1a;、-、*、/、%‌。‌赋值运算符‌&#xff1a;用于将值赋给变量。例如&#xff1a;、、-、*、/、%‌。‌比较运算符‌&#xff…...

shell编程基础知识及脚本示例

文章目录 前言一、shell变量1.命名规则2.定义及使用变量 二、shell传递参数1.位置参数2. 任意参数 三、shell一维数组0.定义方式1.定义并获取数组的单个元素2.定义并获取数组的所有元素3.定义并获取数组的元素个数4.定义并获取数组的元素索引 四、shell条件判断语法五、shell常…...

再学GPIO(一)

GPIO输出模式 STM32的GPIO&#xff08;General Purpose Input Output 通用输入输出&#xff09;引脚支持多种输出模式&#xff0c;不同模式决定了引脚的驱动能力和信号特性。STM32的GPIO输出模式主要分为以下4种&#xff1a; 推挽输出&#xff08;Push-Pull Output&#xff09;…...

OpenCV彩色图像分割

OpenCV计算机视觉开发实践&#xff1a;基于Qt C - 商品搜索 - 京东 灰度图像大多通过算子寻找边缘和区域生长融合来分割图像。彩色图像增加了色彩信息&#xff0c;可以通过不同的色彩值来分割图像&#xff0c;常用彩色空间HSV/HIS、RGB、LAB等都可以用于分割。本节使用inRange…...

django filter 排除字段

在Django中&#xff0c;当你使用filter查询集&#xff08;QuerySet&#xff09;时&#xff0c;通常你会根据模型的字段来过滤数据。但是&#xff0c;有时你可能想要排除某些特定的字段&#xff0c;而不是过滤这些字段。这里有几种方法可以实现这一点&#xff1a; 使用exclude方…...

多模态大语言模型arxiv论文略读(四十五)

CAT: Enhancing Multimodal Large Language Model to Answer Questions in Dynamic Audio-Visual Scenarios ➡️ 论文标题&#xff1a;CAT: Enhancing Multimodal Large Language Model to Answer Questions in Dynamic Audio-Visual Scenarios ➡️ 论文作者&#xff1a;Qil…...

Vue3 通过Vue3-Print-Nb在线工单打印 模板打印 自定义打印 打印下载

介绍 通过在应用中集成打印功能&#xff0c;用户可以直接从页面打印工单&#xff0c;不用导出文件或使用其他外部工具。节省时间&#xff0c;提高效率&#xff0c;特别是当需要大量打印时。同时也可以将文件模板上传到数据库&#xff0c;提供给部门工作自行下载。 开源文档&am…...

视觉“解锁”触觉操控:Franka机器人如何玩转刚柔物体?

集智联机器人&#xff08;Plug & Play Robotics&#xff09;&#xff0c;简称PNP机器人&#xff0c;是Franka Robotics和思灵机器人金牌合作伙伴&#xff0c;集智联机器人团队成员均来自于国内外机器人行业知名企业&#xff0c;具有较强的学术背景。PNP机器人致力于为客户提…...

FlinkUpsertKafka深度解析

1. 设计目标与工作机制 Upsert-Kafka Connector 核心功能&#xff1a;支持以 Upsert&#xff08;插入/更新/删除&#xff09; 模式读写 Kafka 数据&#xff0c;适用于需要动态更新结果的场景&#xff08;如聚合统计、CDC 数据同步&#xff09;。数据流类型&#xff1a; 作为 …...

百度Create大会深度解读:AI Agent与多模态模型如何重塑未来?

目录 百度Create大会亮点全解析&#xff1a;从数字人到Agent生态布局 数字人商业化&#xff1a;从"拟人"到"高说服力"的进化 Agent生态&#xff1a;从"心响"App看百度的Agent战略布局 "心响"App的技术架构与创新点 多模态大模型&a…...

新能源汽车运动控制器核心芯片选型与优化:MCU、DCDC与CANFD协同设计

摘要&#xff1a;随着新能源汽车产业的迅猛发展&#xff0c;汽车运动控制器的性能和可靠性面临着更高的要求。本文深入探讨了新能源汽车运动控制器中MCU&#xff08;微控制单元&#xff09;、DCDC电源管理芯片和CANFD总线通信芯片的选型要点、优化策略及其协同设计方案。通过综…...

【软件工程】 白盒测试简介

1. 前言 在软件测试过程中&#xff0c;白盒测试&#xff08;White-box Testing&#xff09;是一种重要方法&#xff0c;它通过检查程序内部结构来验证软件功能。本文以一道典型的伪代码程序为例&#xff0c;结合白盒测试的基本操作&#xff0c;设计语句覆盖测试用例&#xff0…...

uniapp自定义一个选择年月日时分的组件。

<template><view><u-popup :show"timePopShow" mode"bottom" close"close" open"open" :closeOnClickOverlay"true"><view class"popup-container"><!-- 自定义时间内容 --><vi…...

Git命令(Gitee)

三板斧&#xff1a; git init //初始化本地仓库 git add . //添加所有文件到缓存区 &#xff08;或指定文件&#xff09; git commit -m "备注" //提交&#xff0c;填写备注 git remote add origin <远程仓库链接> git push -u origin ma…...

Node.js 应用部署:镜像体积优化与安全的多阶段构建探索

Node.js 应用部署:镜像体积优化与安全的多阶段构建探索 在开发 Node.js 应用时,部署过程中的镜像体积优化和安全性保障是至关重要的环节。本文将通过两种不同的 Docker 部署方式,深入探讨如何实现高效的镜像体积优化和安全的部署环境。 传统的单阶段构建方式 许多开发者在…...

深度解析:Web Crawling与Web Scraping的区别与联系

在现代互联网数据驱动的时代&#xff0c;Web Crawling(网页爬取)和Web Scraping(网页抓取)成为数据采集领域的两大核心技术。尽管两者常被混用&#xff0c;但它们在技术实现、应用目的和操作流程上存在显著差异。本文将基于权威资料&#xff0c;特别是维基百科的定义&#xff0…...

C# 利用log4net 工作台打印和保存到文件

目录 ‌log4net‌简介引言1、添加引用库2、添加引用和构建实例3、添加属性配置4、添加配置文件最后 ‌log4net‌简介 log4net‌是一个开源的日志记录组件&#xff0c;专为.NET平台设计。它是Apache log4j框架在Microsoft .NET平台的实现&#xff0c;属于Apache Logging Servic…...

2025 VSCode中如何进行dotnet开发环境配置完整教程

我一直都是用Visual Studio 2019来开发C#项目的&#xff0c;用的比较顺手&#xff0c;也习惯了。看其他技术文章有介绍VS Code更轻量&#xff0c;更方便。 所以就想来研究如何使用VS Code&#xff0c;看看它是如何构建代码、调试代码、如何运行C#应用程序。 本文将详细介绍如何…...

vscode本地化显示远程图形化界面

远程登陆到服务器端 sudo vim /etc/ssh/sshd_config修改文件中的参数&#xff0c;保存。主要参数如下 配置好上述后需要reload一下ssh,安装xclock。 service ssh reload # 安装x11-apps&#xff0c;这样就可以使用xclock apt install x11-apps查看环境变量,在其中并没有DISPL…...

STM32 CAN通信 HAL库实战教程:从零到测试成功

STM32 CAN通信 HAL库实战教程&#xff1a;从零到测试成功 <我打印的是陀螺仪的数据> 目录 简介&#xff1a;为什么学习CAN通信CAN通信基础概念STM32 CAN硬件配置CAN初始化详解CAN数据发送实现CAN数据接收实现测试与验证方法常见问题与解决总结与拓展 1. 简介&#xff1…...

数据结构强化篇

应用题 排序 插入排序 void InsertSort (ElemType A[], n int) {int i, j;for (i2; i<n; i) //依次将 A[2]&#xff5e;A[n]插入前面已排序序列if (A[i]<A[i-1]) { //若 A[i]关键码小于其前驱&#xff0c;将 A[i]插入有序表A[0]A[i]; //复制为哨兵&#xff0c;A[0]不存放…...

泰迪杯实战案例超深度解析:旅游景点游客流量预测与资源优化

(2025年泰迪杯数据挖掘挑战赛D题特等奖案例) 一、案例背景与目标 1.1 应用场景与痛点 某5A级景区面临以下核心问题: 拥堵严重:节假日热门景点游客密度超过10人/㎡,排队时间长达2小时。 资源浪费:接驳车空载率30%,餐饮点位在非高峰时段闲置率60%。 应急滞后:突发降雨或…...

qt 3d航迹图

一般就是三种方法 1.opengl&#xff0c;vtk这种从零自己画&#xff0c;网上也可能有半成品&#xff0c;大多是付费的。 2.重写qwt3d&#xff0c;07年就停止更新了&#xff0c;画出来类似opengl&#xff0c;需要自己修改参数&#xff0c;参数修改不对很难搞&#xff0c;对于经…...

探索排序算法的奥秘(上):冒泡排序、选择排序、插入排序

在计算机科学中&#xff0c;排序算法是数据处理的基础工具之一。通过对数据进行有序排列&#xff0c;可以极大地提高数据检索和处理的效率。本文将详细介绍三种经典的排序算法&#xff1a;冒泡排序、选择排序和插入排序。我们将从算法思想、原理、代码实现&#xff08;C语言、P…...

Stable Diffusion 技术全景解析与行业竞争力分析

目录 一、Stable Diffusion 技术概览 1. 核心背景 2. 技术架构 二、行业地位与竞品对比 1. 市场定位 2. 核心竞争优势 三、部署成本与硬件要求 1. 硬件配置方案 2. 优化技巧 四、优势与劣势分析 1. 核心优势 2. 主要劣势 五、开源策略与商业模型 1. 开源协议 2. …...

基于Python的DeepSeek API图形界面开发

基于Python的DeepSeek API图形界面开发 在人工智能技术广泛应用的今天&#xff0c;如何将强大的API能力与用户友好的界面结合&#xff0c;成为开发者关注的重点。本文将以DeepSeek API为例&#xff0c;详解如何通过Python构建兼具功能性与美观度的GUI应用程序。 一、技术架构…...