【Flutter 1-7】Flutter教程Dart语言——变量
作者 | 弗拉德
来源 | 弗拉德(公众号:fulade_me)
2011年10月10日的GOTO大会上,谷歌的两位工程师发布了“Dart”;Dart是一种全新的编程语言,旨在帮助开发者构建Web应用程序。Dart 1.0于2013年11月14日发布。我们日常开发Flutter使用的就是Dart语言,所以我们有必要了解一下Dart语言的使用方法。
类型安全的语言
Dart 语言是类型安全的语言,但是由于其支持类型推断,因此大多数变量不需要显式地指定类型:
例如
/// 初始化一个字符串
var name = 'Fulade';
/// Int类型
var year = 1995;
/// 浮点数类型
var antennaDiameter = 3.7;
/// 数组
var list = ['Java', 'Python', 'C++', 'C'];
/// 字典类型
var image = {
'tags': ['土星'],
'url': '//path/to/saturn.jpg'
};
变量
下面的示例代码将创建一个变量并将其初始化:
var name = 'Fulade';
变量仅存储对象的引用。
这里名为 name 的变量存储了一个 String
类型对象的引用,'Fulade'
则是该对象的值。
name
变量的类型被推断为 String
,但是你可以为其指定类型。
如果一个对象的引用不局限于单一的类型,可以将其指定为 Object
或 dynamic
类型。
dynamic name = 'Bob';
除此之外你也可以指定类型:
String name = 'Bob';
默认值
在 Dart 中,未初始化的变量拥有一个默认的初始化值:null
。即便数字也是如此,因为在 Dart 中一切皆为对象,数字也不例外。
int lineCount;
if(lineCount == null) {
print("line is null");
}
Final 和 Const
如果你不想更改一个变量,可以使用关键字 final
或者 const
修饰变量,这两个关键字可以替代 var
关键字或者加在一个具体的类型前。一个 final
变量只可以被赋值一次;一个 const
变量是一个编译时常量(const
变量同时也是 final
)。被final
修饰的变量在第一次使用的时候被初始化。
下面的示例中我们创建并设置两个 final
变量:
final name = 'Bob'; // Without a type annotation
final String nickname = 'Bobby';
你不能修改一个 final
变量的值:
name = 'Alice'; // Error: a final variable can only be set once.
使用关键字 const
修饰变量表示该变量为 编译时常量。如果使用 const
修饰类中的变量,则必须加上 static
关键字,即 static const
(注意:顺序不能颠倒。在声明 const
变量时可以直接为其赋值,也可以使用其它的 const
变量为其赋值:
const bar = 1000000; // 直接赋值 [Unit of pressure (dynes/cm2)]
const double atm = 1.01325 * bar; // 利用其它 const 变量赋值 (Standard atmosphere)
const
关键字不仅仅可以用来定义常量,还可以用来创建常量值,该常量值可以赋予给任何变量。你也可以将构造函数声明为 const
的,这种类型的构造函数创建的对象是不可改变的。
var foo = const [];
final bar = const [];
const baz = []; // 相当于 `const []` (Equivalent to `const []`)
如果使用初始化表达式为常量赋值可以省略掉关键字 const
,比如上面的常量 baz
的赋值就省略掉了 const
没有使用 final
或 const
修饰的变量的值是可以被更改的,即使这些变量之前引用过 const
的值。
foo = [1, 2, 3]; // foo 的值之前为 const [] (Was const [])
常量的值不可以被修改:
baz = [42]; // 报错:常量不可以被赋值。(Error: Constant variables can't be assigned a value.)
【Flutter 1-7】Flutter教程Dart语言——变量的更多相关文章
- Flutter教程- Dart语言规范-知识点整理
Flutter教程- Dart语言知识点整理 Dart语言简介 Dart语言介绍 ① 注释的方式 ② 变量的声明 ③ 字符串的声明和使用 ④ 集合变量的声明 ⑤ 数字的处理 ⑥ 循环的格式 ⑦ 抛异常 ...
- flutter系列之:flutter架构什么的,看完这篇文章就全懂了
目录 简介 Flutter的架构图 embedder engine Flutter framework Widgets Widgets的可扩展性 Widgets的状态管理 渲染和布局 总结 简介 Fl ...
- Flutter学习笔记(2)--Dart语言简介
Dart简介: Dart诞生于2011年10月10日,Dart是一种"结构化的web编程"语言,Dart虽然是谷歌开发的计算机编程语言,但后来被ECMA认定位标准,这门语言用于We ...
- Flutter学习二之Dart语言介绍
上次我记录了Flutter的环境搭建,这次来简单记录一下Drat语言,Flutter是 Google推出并开源的移动应用开发框架,开发语言是Dart,那么Dart语言和其他的语言在语法上有上面区别呢, ...
- dart系列之:dart语言中的变量
目录 简介 dart中的变量 定义变量 变量的默认值 Late变量 常量 总结 简介 flutter是google在2015年dart开发者峰会上推出的一种开源的移动UI构建框架,使用flutter可 ...
- Dart 语言简易教程系列
google Fuchsia系统 及 dart语言简介 在 InteIIiJ IDEA 中搭建 Dart 的开发环境 Dart Linux 开发环境搭建 Dart 语言简易教程(一) Dart 语言简 ...
- 简单易懂的Dart》 - Dart语言中文简明教程
转自:https://www.blackglory.me/straightforward-dart/ Dart是Google公司发布的网络编程语言,其诞生的目的是为了让广大C类OOP程序员们克服Jav ...
- [Flutter] Windows平台Flutter开发环境搭建(Andorid Studio)
前两天网友在群里说起了Flutter,就了解了一下,在手机上跑了它的demo,直接就被打动了. 虽然网上有很多教程,但真正开始的时候,还是会碰到很多坑.下面详细的讲解Flutter + Android ...
- 30分钟掌握Dart语言
在Dart中,一切都是对象,一切对象都是class的实例,哪怕是数字类型.方法甚至null都是对象,所有的对象都是继承自Object 虽然Dart是强类型语言,但变量类型是可选的因为Dart可以自动推 ...
随机推荐
- TiOps,支持容器,支持多云安全远程运维,疫情期间免费开放,助力远程办公
TiOps,支持多云环境安全远程运维,疫情期间免费对外开放在疫情期间,为减少疾病传染可能性,许多公司的选择了在家远程办公.对于运维来说,既要远程运维,又要保证安全,还要在复杂的IT环境中保持高效,面临 ...
- Flask之WTF
Flask-WTF是什么? 是一个关于表单的扩展库,可以自动生成表单的HTML代码和验证提交的表单数据,并且提供跨站请求伪造(Cross-Site Request Forgery)保护的功能,使用非常 ...
- 【UR #9】App 管理器
UOJ小清新题表 题目内容 UOJ链接 一句话题意:给出一个强联通的混合图,有一些有向边和无向边.删除一些边使其维持强联通的状态,求删边方案. 数据范围 \(1\leq n\leq 5000,0\le ...
- JetBrains-CLion永久激活教程
前言 JetBrains Clion 是一款专为 C/C++ 开发所设计的跨平台 IDE.本文适用 JetBrains CLion v2019.3/3.1/3.2/3.3 永久激活,附破解补丁和激活码 ...
- Git Push 避免输入用户名和密码方法
1 创建文件存储GIT用户名和密码 在%HOME%目录中,一般为C:\users\Administrator,也可以是你自己创建的系统用户名目录,反正都在C:\users\中.文件名为.git-cre ...
- Java Web核心组件之Servlet的使用介绍
Servlet是Java Servlet的简称,称为小程序或服务连接器,用Java编写的服务端程序,主要功能在于交互式地浏览和修改数据,生成动态的Web内容:Servlet运行于支持Java的应用服务 ...
- 《SQL 必知必会》读书笔记
第1课 了解 SQL 这章主要介绍了数据库,表,字段类型,行,列,主键和SQL等基本概念. 数据库:以某种形式存储的数据集合,在计算机上的表现形式可能是一个文件或者一组文件.我们平时所说的数据库,往往 ...
- gulp 打包安装
Ooo_My_God发表于2015-02-24 分类:构建工具 阅读(41103) 评论(166) 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行 ...
- B. Rock and Lever 解析(思維)
Codeforce 1420 B. Rock and Lever 解析(思維) 今天我們來看看CF1420B 題目連結 題目 給一個數列\(a\),求有多少種\((i,j)\)使得\(i<j\) ...
- src/plugins/Export2Excel.js(目录没有可以重建)
第一步Install cnpm install file-saver 或者 yarn add file-saver cnpm install xlsx 或者 yarn add xlsx cnpm in ...