dart快速入门教程 (2)

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

猜你喜欢

转载自www.cnblogs.com/dadifeihong/p/12047501.html