Flutter ☞ 常量

常量

只能被定义一次,并且不可修改的值叫做常量。
Flutter 中有两种常量修饰方法

  • final
  • const

相同点

类型声明可以省略

final String a = '123';
final a = '123';const String a = '123';
const a = '123';

初始化后不能再赋值

final a = '123';
a = 'abc'; // 错误const a = '123';
a = 'abc'; // 错误

不能和 var 同时使用

final var a = '123'; // 错误
const var a = '123'; // 错误

不同点

确定的值

final dt = DateTime.now();
const dt = const DateTime.now();
  • final 修饰时间可以是即时时间。即当前值会根据运行时进行变化
  • const 修饰时间必需为确定值,即当前值不会根据运行时变化。

不可变,可传递

final List ls = [11, 22, 33];
ls[1] = 44;const List ls = [11, 22, 33];
ls[1] = 44; // 报错
  • final 修饰数组集合时,数组内的值可修改
  • const 修饰数组集合时,数组内的值不可修改

内存中重复创建

final a1 = [11, 22];
final a2 = [11, 22];
print(identical(a1, a2)); // falseconst a1 = [11, 22];
const a2 = [11, 22];
print(identical(a1, a2)); // true
  • identical 通过比较两个引用的是否是同一个对象判断是否相等

使用场景

final 成员变量初始

class PlaceholdWidget extends StatelessWidget {final String? assetImagePath;const PlaceholdWidget({Key? key,this.assetImagePath,}) : super(key: key);@overrideWidget build(BuildContext context) {...}
}

const 全局参数

// 本地存储key
static const storageFirstOpen = 'first_open';
static const storageLanguageCode = 'language_code';
static const storageThemeCode = 'theme_code';
static const storageToken = 'token';
static const StorageProfile = 'profile';

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

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

相关文章

Docker-compose和Consul

目录 1、docker-compose 简介 1.1 Docker-compose 简介 2、compose 部署 2.1 Docker Compose 环境安装 2.2 YAML 文件格式及编写注意事项 * * * * 2.3 Docker Compose配置常用字段 2.4 Docker Compose 常用命令 2.5 Docker Compose 文件结构 3、Consul 3.1 什么是…

SkyWalking 告警规则配置说明

Skywalking告警功能是在6.x版本新增的,其核心由一组规则驱动,这些规则定义在config/alarm-settings.yml 文件中。告警规则定义分为两部分: 1、告警规则:它们定义了应该如何触发度量警报,应该考虑什么条件 2、webhook(网络钩子):定义当告警触发时,哪些服务终端需要被…

unity变体收集工具

项目目录:D:\GIT\YooAsset\Temp 收集代码: using System.Collections; using System.Collections.Generic; using UnityEditor; #if UNITY_EDITOR using UnityEditor.Build; using UnityEditor.Rendering; #if UNITY_2019_4_OR_NEWER using UnityEditor.Build.Pipeline…

学习笔记|串口通信实战|简易串口控制器|sprintf函数|STC32G单片机视频开发教程(冲哥)|第二十一集(下):串口与PC通信

目录 3.串口通信实战实操简易的工作原理Tips:sprintf函数简介 总结课后练习 3.串口通信实战 做一个简易串口控制器。发送对应指令,让板子做相应的事情,或者传输数据(文本模式下发送,不要选择HEX)。 1.串口发送字符Ax\…

2020年亚太杯APMCM数学建模大赛B题美国总统的经济影响分析求解全过程文档及程序

2020年亚太杯APMCM数学建模大赛 B题 美国总统的经济影响分析 原题再现: 美国总统选举每四年举行一次。 2020年是美国总统大选年,共和党候选人唐纳德特朗普和民主党对手乔拜登竞选总统。 甲乙双方候选人在金融贸易,经济金融治理,…

云计算系统与传统计算系统的比较

随着技术的不断发展,云计算系统逐渐成为了企业和个人使用的主要计算方式之一。然而,很多人对云计算系统与传统计算系统之间的区别和相似之处还存在一些疑惑。本文将以云计算系统和传统计算系统为方向,探讨它们之间的异同点。 首先&#xff0…

python爬虫实战-京东商品数据

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 今天介绍一下如何用 Python 来批量获取京东商品信息!! 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 第三方库: requests >>> pip install requests 开发环境: python 3.8 py…

【iOS】——用单例类封装网络请求

文章目录 一、JSONModel1.JSONModel的简单介绍2.JSONModel的使用 二、单例类和Block传值 一、JSONModel 1.JSONModel的简单介绍 JSONModel一个第三方库,这个库用来将网络请求到的JSON格式的数据转化成Foundation框架下的Model类的属性,这样我们就可以直…

mysql中date/datetime类型自动转go的时间类型time.Time

在DSN中需要加入parseTimetrue&&locLocal,或 charsetutf8mb4&locAsia%2FShanghai&parseTimetrue。 package main_testimport ("database/sql""fmt""testing""time"_ "github.com/go-sql-driver/mysq…

Elasticsearch基础篇(五):创建es索引并学习分析器、过滤器、分词器的作用和配置

创建es索引并学习分析器、过滤器、分词器的作用和配置 一、基础概念Elasticsearch与MySQL的类比1. ES与MySQL的结构类比图2. ES与MySQL的类比示意表格3. 索引中重要概念索引(Index)文档(Document)字段(Field&#xff0…

2023.10.18 区别 对象 和 类对象

目录 对象 类对象 总结 对象 对象是类的实例化结果它是内存中的一块区域,包含了该类的属性和方法的具体值和实现对象具有唯一的标识、状态、行为通过创建类的实例,我们可以在程序中操作和处理具体的对象 简单实例 class Person {public int high 1…

车载开发学习——CAN总线

CAN总线又称为汽车总线,全程为“控制器局域网(Controller Area Network)”,即区域网络控制器,它将区域内的单一控制单元以某种形式连接在一起,形成一个系统。在这个系统内,大家以一种大家都认可…

Netty系列教程之NIO基础知识

近30集的孙哥视频课程,看完一集整理一集来的,内容有点多,请大家放心食用~ 1. 网络通讯的演变 1.1 多线程版网络通讯 在传统的开发模式中,客户端发起一个 HTTP 请求的过程就是建立一个 socket 通信的过程,服务端在建立…

VR全景图片如何拍摄制作,拍摄制作过程中要注意什么?

引言: VR全景图片就是通过专业的相机设备捕捉到的一个空间的高清图像,再经过专业工具进行拼合,呈现出一种环绕式的视觉效果。想象一下,当你站在一个完全真实的环境中,可以自由地转动视角,看到四周的景色&a…

高数定理集合啦

haha~ 最近在准备数学竞赛,好久没有发布笔记啦,今天就来一波高数里常用的定理吧,不全面的话后续会更新哒~ 费马定理:对于一个函数的局部极值点,如果导数存在,那么导数在该点处必须为零,即 f(x)0…

SQL数据库管理工具RazorSQL mac中文版特点与功能

RazorSQL mac是一款功能强大的SQL数据库管理工具,它支持多种数据库,包括MySQL、Oracle、Microsoft SQL Server、SQLite、PostgreSQL等。 RazorSQL mac 软件特点和功能 多种数据库支持:RazorSQL支持多种数据库,用户可以通过一个工…

基于R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习高级应用

查看原文>>>【案例教程】基于R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习高级应用 Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析…

安装Elasticsearch步骤(包含遇到的问题及解决方案)

注:笔者是在centos云服务器环境下安装的Elasticsearch 目录 1.安装前准备 2.下载Elasticsearch 3.启动Elasticsearch 非常容易出问题 第一次运行时,可能出现如下错误: 一、内存不足原因启动失败 二、使用root用户启动问题 三、启动ES自…

uniapp使用uQRCode绘制二维码,下载到本地,调起微信扫一扫二维码核销

1.效果 2.在utils文件夹下创建uqrcode.js // uqrcode.js //--------------------------------------------------------------------- // github https://github.com/Sansnn/uQRCode //---------------------------------------------------------------------let uQRCode {…

第二证券:A股三季报披露全面启动 多领域上市公司业绩表现亮点纷呈

A股上市公司三季报宣告全面发动。Wind数据闪现,到10月17日记者发稿,来自沪深北三大交易所近80家上市公司首要晒出了最新运营效果体现的“效果单”。本周,相关财报宣告家数也将增至270家左右。与此同时,10月以来,亦有不…