Dart 学习笔记

该笔记只针对代码部分作展示,不讲解详细的概念

第一章 Dart 入门基础

Dart 是一个免费且开源的语言,提供了高易用性、研发生产力提高、在全平台极速运行等特性。

Hello Word

第一个程序 hello word

void main (List<String> args){
print("hello world");
}

变量

使用 var 来声明变量

var name = "张三"  //即可

常量

使用const 和 final 来声明常量

const name = "张三"
final age = 18
  • const 与 final 的区别
    • final 定义时可以不赋值 但是后续赋值只能赋值一次
    • const 定义时 必须负值
    • final 是可以 运行时 定义初始化
  final nowTime;
  const a = "value";
  final b = "value";
  final now = new DateTime.now();
  // 定义常量 时声明数据类型
  const int i = 1;
  final String str = "hello";

变量引用与字符串连接

变量引用

  var name = "张三";
  print("hello $name"); //第一种
  print("hello ${name}"); // 第二种

字符串连接

 print("你好 " + "张三");

数据类型基础

数据类型关键字描述
整型int整数型
数字num一个用于装载数值(整数、小数均可)的容器
字符串型String字符串类型
浮点数double浮点数
布尔值boolean布尔类型
集合or 数组List集合
Set集合Set不重复的集合
键值对型Map<K,T>键值对类型
void main(List<String> args) {
  int a = 10; //整形变量
  num b = 5; // 声明了一个用于装载数值(整数、小数均可)的容器
  var name = "name"; // 编译器被要求自行推断变量 name 的类型。在此它会被推断为字符串类型。
  double weight = 12; // 声明和赋值同时做了   double 类型
  String gender; //字符串  gender 可以是 null
  // 注意:赋值是将数据装入变量容中。没有赋值的变量的值就是 null。如果允许一个变量的值是 null,在变量声明时就要说明,方法是在他的类型后加上一个问号。
  //String? gender;  // gender 可以是 null
  bool isReady = false; // boolean 类型
  List data = [12.34, 100, 'OK', false]; // 集合or 数组
  List<String> seasons = [
    'sparing',
    'summer',
    'fall',
    'winter'
  ]; // <类型>用于指定装载的数据类型  泛型
  Set<String> colors = {'blue', 'green', 'red'}; //set集合
  Map emp_info = {'name': 'Bill', 'age': 20, 'education': 'master'}; //map集合

  /* 
  列表计算
  */

  var arr = [1, 2, 3];
  var arr1 = [4, 5, 6];
  print(arr + arr1);
}

布尔型

布尔型顾名思义就是布尔值 只有真或者假

void main(List<String> args) {
  var test = true;
  print(test is bool);
}

number型 (数值型)

void main(List<String> args) {
  /*
  有两种类型
  一、int   不能大于64位
  二、double 
   */

  //声明方式
  var a = 1;
  int b = 1;
  double c = 1;
  //赋值
  // 整形  不能   转double;
  //double  可以  转整形(丢失精度)

  // string  -》 int
  print(int.parse("1"));

  // string  -》 double
  print(double.parse("1.1"));

  //num 支持整数  浮点数

  //int   ---> string

  print(1.toString());

//is 关键字   用于判断 数据类型

  print(1.toString() is String);

  //数字的计算
  /*
     + 
     -
     *
     /
     %
      */
  //print('2'+1)    不存在隐式类型转换

  //取整
  print(3 ~/ 2); //把小数点后面去除

  //数字的方法
  print(1.isNaN); // 是不是一个数字
  print(1.isInfinite); //是不是一个无穷
  print((-1).isNegative); // 是不是 一个负数
  print(2.isEven); // 判断是不是一个偶数

  //数学方法
  //取绝对值
  print((-1).abs());
  //向上取整
  print(1.1.ceil());
  //向下取整
  print(1.8.floor());
  //四舍五入
  print(2.5.round());
  // 去除小小数点后的东西
  print(2.6.truncate());
}

String 类型

void main(List<String> args) {
  /*
  单双引号  不区分
   */
  String str = "abc";
  String name = '张三';

  //三引号
  var string = '''sadsa
  adsa
  dsa
  dsa
  sa
  ''';
  //可折行写  并且保留折行
  /*
  字符串拼接
  // 第一种   + 号
  // 第二种  变量带入
    print("hello $name"); //第一种
    $name 后面 不能紧跟一个符号
    print("hello ${name}"); // 第二种
  */

  //常见的字符串方法
  /*
  var a = 'a' ;
  var b = 'b' ;
   */
  //  字符串  比较
  //  a == b  true
  // 只能比较相等  不能比较大小
  //字符串长度  与  下标
  print(str.length);
  print(str[0]);
  //判空
  print(str.isEmpty);

  //字符串分割为数组
  print(string.split(""));

  // 检查是否含有某个字符串
  print(str.contains("a"));

  //检查是否以一个字符串开头
  print(str.startsWith("a"));

  //检查是否含有某个字符串并返回下标
  print(str.indexOf("a"));
// 从0 开始
  print(str.lastIndexOf("c"));

  //字符串截取
  print(str.substring(1));
  //(index) 从头到尾部
  //(开始 , 结束)
  print(str.substring(1, 2));

  //大小写转换
  print(str.toLowerCase());
  print(str.toUpperCase());

  //去除首位空格
  var str1 = "       hello        ";
  print(str1.trim());

  //字符串的方法都是返回一个字符串   原来的不改变

  //正则表达式
  var e = new RegExp("e");
  print(str1.replaceAll(e, "b"));

  //检测是否包含
  print(e.hasMatch(str1));
}

List 类型

void main(List<String> args) {
  var list = [1, 2, 3, 4, 5]; //第一种声明方式
   List<int> list1 = [2,5,6,8];  //第二张声明方式
 // list1.runtimeType 查看运行时类型
  //常见属性
  /*
  * first   返回list 集合中第一个元素
  * last    返回list 集合中最后一个元素
  * length  返回集合长度
  * isEmpty  查看集合是否为空
  * */
//常用方法
/*
* add()   往list 尾部添加元素
* insert(index,E) 在指定位置添加元素
* remove(index)  删除指定元素
* removeAt(index) 删除指定元素  并返回元素
* clear()  清空list
* map() 修改数组中的元素
* */
   list.forEach((e)=>{
     print(e)
   });
}

set集合

void main(List<String> args){
// 无序  不可重复
var set = {"link","hash","set"};  //第一种创建方法
print(set.runtimeType);

Set<String> set1 = {"link","hash","set"};  //第二种创建方式
  print(set1.runtimeType);

/*
* 常见的几种属性
*length 返回长度
*isEmpty 是否为空
* */

/*
* 常见方法
add(value);
remove(value);
clear();
* */
}

Map 类型

void main (List<String> args){
  var map = {"name":"zhansan","age":18,"addr":"yunnan"};
  print(map.runtimeType);
  print(map.length);
      print(map.keys);
      print(map.values);
//常见属性
/*
  map.length;  键值对数量
  map.keys;    键的数量
  map.values;  值的数量
* */

/*
*  常用方法
map.containsKey(key);  查看是否有这个键
map.containsValue(value);  查看是否有这个值
* */
}

方法与参数

void main(){
  int getNumber(int a ,int b){
        int c =a+b;
        return c;
  }
  print(getNumber(10, 20));

  /*
  * 第二种书写方式
  * */
  //当语句只有一句时
  bool isEven(int num) => num%2 ==0? true:false;
  print(isEven(10));

  //可选命名参数
  /*

  * */
  void getAge(String id, String sid,{int age,String name}){
   print("${id}+${sid}+${age}+${name}");
  }
  getAge("id", "sid",name:"28a");

  //可选位置参数

}

闭包

main(List<String> args) {

  fn(){
    var num = 123;
    return(){
      num++;
      print(num);
    };
  }
  var b = fn();

  b();
  b();
  b();
  b();
}

类与对象

类是用于描述实体的一种方式,对象是对这个实体具体体现

class Student{
  String name;
  int age;
  Student(this.name,this.age);
  // 构造函数
  // 命名构造函数
  // Student.dart.now(){
  //   print("now");
  // }
}
main(){
  new Student("张安", 18);
  // new Student.dart.now();
}

identical函数

main(){
 // var o1 =  new Object();
 // var o2 =  new Object();
 //  print(identical(o1, o2));
 //false
  // 实例化常量构造函数
  var o1 =  const Object();
  var o2 =  const Object();
  print(identical(o1, o2));
  //true
  // 当const 所指向的值或对象相同的时候 他们的内存地址就相同
}

后续有时间又更新吧

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值