Dart:final和const在Dart中的使用区别


前言

本文整理Final和Const在Dart中的区别

一、相同点

  • final、const必须初始化
  • final、const只能赋值一次

二、不同点

  • final可修饰实例变量、const不可以修饰实例变量
  • 访问类中const修饰的变量需要static修饰
  • const修饰的List集合任意索引不可修改,final修饰的可以修改
  • const 用来修饰变量 只能被赋值一次,在编译时赋值
  • final 用来修饰变量 只能被赋值一次,在运行时赋值
  • final 只可用来修饰变量, const 关键字即可修饰变量也可用来修饰 常量构造函数

例如

 const PI=3.14;
 final PI=3.14123;

两种都可,因为这是初始时就已经赋值了

但是

 final Date=new DateTime.now();
 const Date=new DateTime.now(); ×

下方的const则不行,因为DateTime.now()是运行时才能进行赋值,换句话说,笔者理解是:
1.什么东西编译时就能确定,且不用运行时再进行赋值确定,就用const
2.什么东西运行才能确定,且一经赋值不可修改,就用final

猜你喜欢

转载自blog.csdn.net/qjyws/article/details/128768582