美文网首页
Dart关键字final和const

Dart关键字final和const

作者: rookienan | 来源:发表于2021-05-28 11:32 被阅读0次

dart官网定义:
final和const
使用过程中从来不会被修改的变量, 可以使用 final 或 const, 而不是 var 或者其他类型, Final 变量的值只能被设置一次; Const 变量在编译时就已经固定 (Const 变量 是隐式 Final 的类型.) 最高级 final 变量或类变量在第一次使用时被初始化。

提示: 实例变量可以是 final 类型但不能是 const 类型。 必须在构造函数体执行之前初始化 final 实例变量 —— 在变量声明中,参数构造函数中或构造函数的初始化列表中进行初始化。

理解

这里先多说一嘴”编译时常量“和”运行时常量“
比如在java中,
public final static String name = ”test“;//编译时常量,在声明变量赋值,并且不依赖运行时的类状态
public final static int length = ”test“.length();//运行时常量,依赖运行时的类状态

final:只能被设一次值,在声明处赋值,值和普通变量的设值一样,可以是对象、字符串、数字等,用于修饰值的表达式不变的变量;

final int a = 1;
a = 2;//编译报错 The final variable 'a' can only be set once
String name = "aaa";
final int b = 2 * name.length;//编译成功  运行时常量

const:只能被设一次值,在声明处赋值,且值必须为编译时常量;用于修饰常量。

const int a = 1;//编译成功
const int a = 2 * 3;//编译成功
String name = "aaa';
const int b = 3 * name.length;//编译报错 Const variables must be initialized with a constant value.

const还可以用来声明常量值

var a = const[];// const[]创建一个空数组,a就是一个空数组。是可以再次赋值的
final b = const[];//被final修饰,那么就不能再次被赋值了
const c = const[];//直接是编译时常量了
注意:a = [3,3,3]; //编译成功 运行成功

final修饰的基本类型是值不能被修改,但是修饰的是引用类型,比如数组,集合,map,是可以改变里面的内容,const不行

final a = [1];
a[0] = 3;//编译成功
const b = [3];
b[0] = 4;//编译成功,运行报错  Unsupported operation: Cannot modify an unmodifiable list

相关文章

  • Dart 基本语法

    Final以及Const 在 Dart 中使用 final 以及 const 关键字来申明常量。使用 const ...

  • Dart final 与 const 的区别/异同

    Dart final 与 const 的区别/异同 Dart 灵魂三连问 final与const 的区别? 什么时...

  • Dart关键字final和const

    dart官网定义:final和const使用过程中从来不会被修改的变量, 可以使用final或const, 而不是...

  • Dart学习笔记——基础

    1、定义常量 Dart 常量:final 和 const修饰符 const值不变 一开始就得赋值。 final 可...

  • [Dart] final 和 const

    相同点 都必须在声明时赋值,且不能被重新赋值。 const被隐式指定为final。 不同点 const是编译时常量...

  • Flutter 知识梳理 (Dart) - Dart 中 sta

    一、基本概念 在刚开始学习Dart的时候,对于const, final, static这几个关键字很容易产生困惑,...

  • Dartb变量声明

    1.本篇简介 这一篇我们主要介绍Dart中变量声明的关键字,总共有以下几个关键字:var,final,const,...

  • Flutter 中 Const,Static,Final 的巨大

    static , final 和 const 在 Dart 中有着巨大的差别。 核心: static 修饰 me...

  • Dart中final和const

    1. const 值必须在编译时知道,初始化后无法更改 2. final 值必须在运行时知道,初始化后无法更改 3...

  • 06Dart:const和final

    const和final定义的都是常量,值不能改变 ,并且在声明的时候就必须初始化 如果您从未打算更改一个变量,那么...

网友评论

      本文标题:Dart关键字final和const

      本文链接:https://www.haomeiwen.com/subject/ukqssltx.html