美文网首页
Dart学习笔记03-声明变量

Dart学习笔记03-声明变量

作者: zombie | 来源:发表于2020-08-07 00:29 被阅读0次

1. 明确声明(Explicit)

  • 明确声明变量方式 ,格式:变量类型 变量名称 = 赋值
    代码示例如下:
 String name = 'wang';
 int age = 18;
 double height = 1.88;
 print('${name}, ${age}, ${height}');
 // 注意事项: 定义的变量可以修改值, 但是不能赋值其他类型
 String content = 'Hello Dart';
 content = 'Hello World'; // 正确的
 // content = 111; // 错误的, 将一个int值赋值给一个String变量

2. 类型推导(Type Inference)

  • 类型推导声明变量的方式, 格式: var/dynamic/const/final 变量名称 = 赋值

2.1. var的使用

var的使用示例:

var name = 'wang';
// runtimeType用于获取变量当前的类型
print(name.runtimeType); // String
  • 变量仅存储对象引用,这里的变量是name存储了一个String类型的对象引用。 wang是这个String类型对象的值,name变量的类型被推断为String

2.2. dynamic的使用

  dynamic name = 'wang';
  print(name2.runtimeType); // String
  name = 18;
  print(name2.runtimeType); // int

2.3 final const的使用

  • final和const都是用于定义常量的, 定义之后值都不可以修改
  final name = 'wang';
  name = 'james'; // 错误

  const age = 18;
  age = 20; // 错误
  • const在赋值时, 赋值的内容必须是在编译期间就确定下来的
  • final在赋值时, 可以动态获取 比如赋值一个函数
    代码示例如下:
//  const是不可以赋值为DateTime.now()  
const time = DateTime.now(); // 错误  因为要执行函数才能获取到值

// final一旦被赋值后就有确定的结果, 不会再次赋值
final time = DateTime.now();
print(time);
sleep(Duration(seconds: 5));
print(time); // 两次time值相同

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

相关文章

网友评论

      本文标题:Dart学习笔记03-声明变量

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