dart第一篇:dart基础

dart可以通过三对单引号或者双引号来定义多行字符串,就好像Java17中的多行字符串一样,如String str = """a

b

c""";

dart中用int表示正数,double代表小数,num是这两个类的父类。没有其他的数字类。int与double计算,得到double。取余用%表示,整除用~/表示。

List的静态方法:

filled()用于生成一个指定长度和元素的数组,通过第三个参数决定生成的数组是定长还是不定长的,默认是定长的。

genetate()方法用于生成一个指定初始长度的数组,并且可以指定元素生成器以及数组是否定长。默认是不定长的。

 

 

List的实例方法:

void fillRange()方法用于把数组指定区间的元素都替换成一个其他元素,会修改原数组。如一个数组是[1, 2, 3, 4],其调用fillRange(0, 2)后会变为[5, 5, 3, 4]。

void replaceRange方法用于把数组指定区间的元素替换成一个新数组,会修改原数组,原数组长度可能会变。如一个数组是[1, 2, 3, 4],其调用replaceRange(0, 2, [5, 6, 7])后会变为[5, 6, 7, 3, 4]。

T fold()、T reduce()方法用于聚合,返回一个值,可用于求和、求乘积等聚合操作。

 

Iterable followedBy()方法可用于和另一个List实例拼接,如[1, 2].followedBy([3, 4])返回[1, 2, 3, 4]。

Iterable getRange()方法返回一个子数组。

void insert()方法用于往数组中指定位置处插入一个元素,会修改原数组,数组中指定位置处的元素及之后的元素的索引都会加1。

void insertAll()方法用于往数组中指定位置处插入一个数组,会修改原数组,数组中指定位置处的元素及之后的元素的索引都会增加。

String join()方法用于数组拼接,返回一个字符串。

Iterable where()方法用于从一个数组中把满足条件的元素都找出来。

Iterable<T> whereType<T>()方法用于从一个混编的数组中把指定类型的元素都找出来。

Map<int, E> asMap()把list转为一个map,key是索引,value是对应元素。在list.map().toList()的场景中,如果想对某个索引的元素做一些特殊处理,就可以先把list转map,然后获取此map的entries属性,再调用entries的map().toList(),即

    var list2 = list.asMap().entries.map((entry) {
      if (entry.key == 0) {
        // 特殊逻辑
        return entry.value;
      } else {
        return entry.value;
      }
    }).toList();

如果要把两个list拼合,那么可以用...。如a、b都是一个数组,想定义c等于a+b,则可以var c = [...a, ...b]。

 

可以通过is关键字来判断变量是否是某种类型,如bool flag = a is String,判断变量a是否是String类型。

可以通过identical()方法查看两个引用是否指向同一个对象。如

    String a = '1';
    String b = '1';
    bool c = identical(a, b);

 

实体类对象、Map、String之间相互转化

import 'dart:convert';

User user = User();

String str  = jsonEncode(user); // 实体类对象转字符串

Map<String, dynamic> map = jsonDecode(str);// 字符串转Map

User user  = User.fromJson(map);// Map转实体类

 

posted on 2024-08-14 17:00  koushr  阅读(36)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示