跨平台开发前端开发那些事儿

Flutter之Dart基础

2021-02-20  本文已影响0人  叫我小灿吧

一. Hello Dart

1.1 Hello Dart

和大多数语言一样,Dart的入口函数也是Main函数,新建一个helloDart.dart的文件,添加以下代码:

main(List<String> args) {
    print('Hello Dart');
}

终端执行dart helloDart.dart,便可以看到结果。

二. 定义变量

2.1 明确声明 Explicit

变量类型 变量名称 = 变量值;

String name = '小灿';
int age = 24;
double height = 1.70;

!注意:明确声明之后的变量不可以被其他类型的变量赋值

2.2 类型推导

var/dynamic/const/final 变量名称 = 变量值;

var name = '小灿';
name = 18; // 错误,在第一次赋值的时候name变量已经被确定为String型
dynamic name = '小灿'; // name为String类型
name = 18; // name为int类型

2.2.1 final和const(常量)

final和const都是用于定义常量的,在获得了确定的值之后都是不可以被修改的。但是二者的使用是有区别的,final是在运行时动态获取的一个常量值,而const是在编译期间就已经确定下来的常量值。

// const
const name = '小灿'; // 正确
// const date = DateTime.now(); // 错误
final date = DateTime.now(); // 正确

三.数据类型

3.1 数字类型

int age = 24;
double height = 1.70;
// 字符串转换成数字
int ageNum = int.parse('24');
double heightNum = double.parse('1.70');
// 数字转换成字符串
String ageString = ageNum.toString();
String heightString = heightNum.toString();

3.2 布尔类型

bool isGirl = true;
isGirl = false;
// Dart中不可以判断非空即真
String name = '小灿';
// if (name) {
//    
// }
// 错误的用法

3.2 字符串类型

// 单双引号都行
String s = 'Hello Dart';
String s1 = "Hello Dart";
// 多行字符串可以用三引号
String s2 = '''
Hello Dart
nihao
Happy
''';
// 字符串拼接
String name = '小灿';
int age = 24;
double height = 1.70;
print('name:${name}, age:$age, height:$height');
// 可以使用$(xxx)的方式拼接字符串,当xxx是一个标识符的时候,{}可以省略

3.2 集合

Dart有三种集合类型 List / Set / Map

List list = ['a','b','c','d']; // 这种方式是推导List的数据类型
List<int> intList = [1,2,3,4]; // 指定List的数据类型为int 
Set set = {'a','b','c','d'}; // 这种方式是推导Set的数据类型
Set<int> intSet = {1,2,3,4}; // 指定Set的数据类型为int 
Map map = {'name' : '小灿', 'sex' : '男'}; // 这种方式是推导Map的数据类型
Map<String, String> typeMap = {'name' : '小灿', 'sex' : '男'}; // 指定Map的数据类型

集合类型的常见操作

// 获取长度
print(list.length);
print(set.length);
print(map.length);
// 添加元素
list.add(xxx);
set.add(xxx);
// 删除元素
list.remove(xxx);
set.remove(xxx);
list.removeAt(index)// 根据下标删除
// map的基本操作
// 根据key获取具体内容
print(map['name']); // 小灿
// 获取所有内容
print('${map.entries}');// (MapEntry(name: 小灿), MapEntry(sex: 男))
// 获取所有key
print('${map.keys}'); // (name, age) 
// 获取所有key
print('${map.values}'); // (小灿, 男)
// 判断是否包含某个key
map.containKey('xxx'); // true || false
// 根据key删除元素
map.remove('xxx');

四.函数

函数在Dart中也是属于一种对象,类型为Function,因此在Dart中函数可以作为变量作为其他函数的参数或者返回值,一般我们称之为函数是一等公民

函数的定义:

返回值 函数名称 (参数列表) {
函数体
return 返回值
}

// 完整的函数定义
int sum(num num1, num num2) {
  return num1 + num2;
}
// 箭头函数语法 内容不能是语句,只能是一个表达式
sum(num num1, num num2) => num1 + num2;

参数

参数有两种类型:可选参数、必选参数

// 命名可选参数 
funcName( {int age, double height}) {

}
// 调用 命名可选参数调时参数不区分顺序
funcName();
funcName(age: 24);
funcName(height: 1.70);
funcName(age: 24, height: 1.70);

// 位置可选参数 
funcName2([int age, double height]) {

}
// 调用 位置可选参数在传参数时必须按照声明时的顺序传参
funcName2(); 
funcName2(24); 
funcName2(24, 1.70);
// 必选参数 
funcName(String name) {

}
// 调用
funcName("xxx");
// 默认值
funcName({int age = 24, double height = 1.70}) {

}
List list = ['a','b','c'];
// 打印数组
// 命名函数打印
func(value) {
    print(value);
}
list.forEach(func);
//  匿名函数打印
list.forEach((value) {
    print(value);
});
上一篇 下一篇

猜你喜欢

热点阅读