IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Dart语法基础系列三《常量变量》 -> 正文阅读

[移动开发]Dart语法基础系列三《常量变量》

基本语法,先从变量开始。

Dart 变量声明基础


声明一个字符串:

main() {
  String str = 'hello wold';
  print(str);
}

同样可以使用const ,fiinal,var 来声明,由于不确定类型,会和TS、Swift、Kotlin一样类型推导

在这里插入图片描述

str 会被推导成字符串,然而并不会像js的var一样,dart 也是强类型语言。

在这里插入图片描述

默认值

未初始化的变量默认值是 null。即使变量是数字 类型默认值也是 null,因为在 Dart 中一切都是对象,数字类型 也不例外。

int lineCount;
assert(lineCount == null);

提示:语法检查不会让你使用null 的变量

dynamic 字段

dynamic 是动态的,类似于TS 和 Swift any 语法。编译期不做检查,在运行时决定类型。

main() {
  // var str = 'hello wold';
  // str = 3;
  // print(str);

  dynamic a = 3;
  a = '33';
  print(a);
}

dynamic 灵活但存在风险,少用谨慎使用。

?

常量final const 比较


final 和 const 都可以修饰变量,达到不可以更改的目的。

const

如果需要在编译时就固定变量的值,可以使用 const 类型变量。 如果 Const 变量是类级别的,需要标记为 static const。 在这些地方可以使用在编译时就已经固定不变的值,字面量的数字和字符串, 固定的变量,或者是用于计算的固定数字:

修饰变量更改

const 修改变量,然后更改,会报错。

main() {
  const name = 'zhangsan';
  name = 'lisi';
}

报错提示:Constant variables can't be assigned a value.

如果不初始化是否可以?

在这里插入图片描述
答案是不可以,const 必须初始化。

final

创建和设置一个 Final 变量:

final name = 'Bob'; // Without a type annotation
final String nickname = 'Bobby';

如果不初始化是否可以?

main() {
  final name;
  name = '小明';
}

修饰变量更改

main() {
  final name;
  name = '小明';
  name = '小红';
}

在这里插入图片描述

Final 和 Const 比较总结

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

const 在编译时确定,相同内容优先取内存已有地址。

main() {
  List a1 = [1, 2, 3];
  List a2 = [1, 2, 3];
  print(identical(a1, a2));

  final a3 = [1, 2, 3];
  final a4 = [1, 2, 3];
  print(identical(a3, a4));

  const a5 = [1, 2, 3];
  const a6 = [1, 2, 3];
  print(identical(a5, a6));

  Array a7 = const Array.multi([1, 3, 4]);
  Array a8 = const Array.multi([1, 3, 4]);
  print(identical(a7, a8));
}

打印结果:

false
false
true
true

?

static 修饰静态变量

使用 static 关键字实现类范围的变量和方法。

静态变量(类变量)对于类级别的状态是非常有用的:

class Queue {
  static const initialCapacity = 16;
  // ···
}

void main() {
  assert(Queue.initialCapacity == 16);
}

静态变量只到它们被使用的时候才会初始化。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:23:57  更:2021-10-09 16:24:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:00:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码