2.变量和数据类型

2.1.变量和常量

变量通俗的说就是可以变化的量,作用就是用来存储数据,你可以把一个变量看作是一个水果篮,里面可以装苹果、梨、香蕉等,常量就是一个固定的值,和变量是相对的,变量可以变化,常量是不可以变化的

1.声明变量

在dart中使用var来声明一个变量,这个和js中声明变量一样

void main() {
var num = 10;
print(num); // 10
}

注意:没有给变量赋值的时候,默认为null

void main() {
var num;
print(num); // null
}

可以使用final关键字声明一个只能被赋值一次的变量

void main() {
final num = 10;
print(num);
// num = 30;
// print(num); // 把这两行注释打开会报错
}

2.常量声明

常量声明需要使用const关键字,这个和es6中的const类似

void main() {
const num = 10;
print(num);
num = 30; // 报错
}

3.final和const的区别

2.2.数据类型

dart中提供的数据类型有以下几种:

1. 数字类型-numbber  2. 字符串类型-string
3. 布尔类型-Boolean 4. 列表-list
5. Map 6. Runes
7、Symbols

1.数字类型(number)

数值型包括整型(int)和浮点型(double),定义变量的时候可以规定类型

void main() {
// num是整型和浮点型的总称, 这个时候变量a里面既可以存整型也可以存浮点型
num a = 20;
print(a);
a = 20.5;
print(a);
}
void main() {
// int表示定义整型,这个时候里面不能存浮点型
int a = 20;
print(a);
a = 20.5; // 报错
print(a);
}
void main() {
double a = 20.5;
print(a);
a = 20; // 没报错
print(a); // 20.0
}

2.字符串类型(String)

定义字符串可以有多种方式,包括单引号、双引号、三引号、原始字符串等

void main() {
// 单引号形式
String str1 = 'hello nodeing!!';
// 双引号形式
String str2 = "hello nodeing!!!";
// 三引号形式,可以创建多行字符串
String str3 = '''
<div>
<h1>hello nodeing!!</h1>
</div>
''';
// 定义原始字符串
String str4 = r'hello \n nodeing!!!';
// 没有使用原始字符串定义
String str5 = 'hello \n nodeing!!!';
print(str1);
print(str2);
print(str3);
print(str4);
print(str5);
}

上面代码中需要注意的是,str5因为没有使用原始字符串定义,所以\n会被当成是回车换行

3.布尔类型(Boolean)

布尔类型非常简单,只有两个值,true和false

void main() {
bool a = true;
bool b = false;
print(a);
print(b);
}

4.list列表

list和js中的数组类似,长得都是一样的

void main() {
// 创建一个list
var lis = [1, 2, 3];
print(lis);
// 通过类的方式创建
var lis2 = new List();
print(lis2);
// 创建一个不可变的列表
var lis3 = const [1, 2, 3];
lis3[0] = 2; // 报错
}

5.Map类型

Map类型就是一些键值对

void main() {
// 创建一个list
var mp = {'name': 'xiaoqiang', 'age': 18};
print(mp);
// 通过类的方式创建
var mp2 = new Map();
print(mp2);
// 创建一个不可变的Map
var mp3 = const {'name': 'xiaosan', 'age': 30};
// 获取值
print(mp3['name']);
mp3['name'] = 'xiaosi'; // 报错
}

螺钉课堂视频课程地址:http://edu.nodeing.com

dart快速入门教程 (2)的更多相关文章

  1. dart快速入门教程 (8)

    9.dart中的库 9.1.自定义库 自定义库我们在前面已经使用过了,把某些功能抽取到一个文件,使用的时候通过import引入即可 9.2.系统内置库 以math库为例: import "d ...

  2. dart快速入门教程 (7.4)

    7.12.多态 多态字面上理解就是多种状态,通俗的说,多态表现为父类定义一个方法不去实现,子类继承这个方法后实现父类的方法,这个方法有多种表现 // import 'person.dart'; voi ...

  3. dart快速入门教程 (7.3)

    7.4.抽离类为单独文件 新建一个文件,单独存放一个类,例如:Person类抽离到person.dart文件中 class Person { final String name; final num ...

  4. dart快速入门教程 (7.2)

    7.4.抽离类为单独文件 新建一个文件,单独存放一个类,例如:Person类抽离到person.dart文件中 class Person { final String name; final num ...

  5. dart快速入门教程 (7.1)

    7.面向对象 dart是一门使用类和单继承的面向对象语言,所有的对象都是类的实例,所有的类都是Object的子类,换句话说就是万物皆对象 7.1.类与对象 void main() { // 注意:ne ...

  6. dart快速入门教程 (1)

    1.环境搭建 1.1.dart简介 Dart 是一种 易于学习. 易于扩展.并且可以部署到 任何地方 的 应用 编程 语言.Google 使用 Dart 来开发 大型应用.flutter使用dart语 ...

  7. dart快速入门教程 (6)

    6.内置操作方法和属性 6.1.数字类型 1.isEven判断是否是偶数 int n = 10; print(n.isEven); // true 2.isOdd判断是否是奇数 int n = 101 ...

  8. dart快速入门教程 (5)

    5.函数 5.1.函数定义 语法: 返回值类型 函数名(参数类型 参数1, 参数类型 参数2,...) { // 函数体 return '返回值' } 举例: void main() { print( ...

  9. dart快速入门教程 (4)

    4.流程控制 4.1.分支结构 1.if语句 void main() { int score = 80; if (score >= 90) { print('优秀'); } else if (s ...

随机推荐

  1. 利用init进程监控底层节点的方法架构

    native层利用底层节点变化,再针对变化进行相应的函数调用,实现某些功能. 架构如下: 底层提供节点更新,以及healthd读取节点的实现,都比较简单.而其余部分比较关键. 特别注意init监控pr ...

  2. java实现第三届蓝桥杯提取子串

    提取子串 [代码填空](满分16分) 串"abcba"以字母"c"为中心左右对称:串"abba" 是另一种模式的左右对称.这两种情况我们都称 ...

  3. 头条面试居然跟我扯了半小时的Semaphore

    一个长头发.穿着清爽的小姐姐,拿着一个崭新的Mac笔记本向我走来,看着来势汹汹,我心想着肯定是技术大佬吧!但是我也是一个才华横溢的人,稳住我们能赢. 面试官:看你简历上有写熟悉并发编程,Semapho ...

  4. MySql多表查询优化

    一.多表查询连接的选择 相信内连接,左连接什么的大家都比较熟悉了,当然还有左外连接什么的,基本用不上,我就补贴出来了,这个图只是让大家熟悉一下各种连接查询.然后要告诉大家的是,需要根据查询的信息,想好 ...

  5. 注解实现SpringCache自定义失效时间

    注解实现SpringCache自定义失效时间 SpringCache是一个很方便的缓存框架,但是官方提供的缓存的配置只有全局的缓存失效时间,没有针对某个命名空间做配置,因为工作上业务的关系需要针对某一 ...

  6. [原创][开源] SunnyUI.Net 安装

    SunnyUI.Net, 基于 C# .Net WinForm 开源控件库.工具类库.扩展类库.多页面开发框架 Blog: https://www.cnblogs.com/yhuse Gitee: h ...

  7. Sublime Text 3.1 注册码

    加入到hosts文件: 127.0.0.1 www.sublimetext.com 127.0.0.1 license.sublimehq.com hosts 文件的位置: Windows : c:/ ...

  8. CAT12提取surface指标

    介绍 基于表面的形态学分析(VSM)的方法被越来越多的研究者使用.本文主要介绍基于SPM12和CAT12工具包进行ROI-based VSM的处理步骤. 方法 本文数据处理使用的工具是MATLAB,S ...

  9. Javascript 16进制转有符号的10进制整数

    在赶项目中开发一个单片机对应的数据接口,需要将一个两字节的十六进制转化为-256~255的10进制数.百度了好久都没有对应且简明的教程,干脆就自己写一篇.   我们都知道JavaScript整数类型有 ...

  10. git添加所有新文件

    git add -A 提交所有变化 git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new) git add . 提交新文件(new)和被修改(mod ...