从 JS 到 Dart:语法基础

声明:var final const。支持自动推断类型,但类型一直固定。未初始化的值为 null

Final vs const: const 编译时确定,final 运行时确定

基本类型:num int double String bool List Set Map

  1. int.parse('1'); // 1 1.toString()
  2. 带变量的字符串:${expression}
  3. 字符串连接:"字符串1" "字符串2"
    "字符串3";
    用加号也行
  4. 多行字符串
    '''
    这是第一行字符串。
    这是第二行字符串。
    '''
  5. enum Color { red, green, blue } Color.blue Color.blue.index
    级联调用:a...b=1;...c.d() 等价于 a.b=1; a.c.d()
    算数运算符:/除 ~/除法取整
    类型运算符:as is is!
    条件运算符:x ?? y 等价于 x ? x : y
    List 类型:list.add('x') list.insert(2, 'x') list.remove('x') list.sort() list.sort((a, b) => a < b ? 1 : -1) list.indexOf('x') list.contains('x')
    new 是可选的 List a = new List(); ✅ List a = List();✅
    Set 类型:set.add('x') set.addAll('x', 'y', 'z') set.remove('x') set.clear() set.contains('x') for(var x in set)
    Map 类型:map"k1"="v1" map.remove("k1") map.clear() map.length map.foreach((k, v) {})
    忽略参数定义顺序的函数传参:定义:void enableFlags({bool bold, bool hidden}) {} enableFlags(hidden: true, bold: false);
    可选参数:void fun(int a, int b=1, int c=2){}
    闭包函数:(a, b) {return a>b} 闭包函数可以做闭包。箭头函数:(a, b)=>a>b
    类:_x私有属性 this.y✅ y✅(在没有歧义的情况下) 参数初始化 Point(int x, int y) : this.x = x, this.y = y {} Point(this.x, this.y);
    命名构造方法(预制构造方法)Point.origin() {x = 0;y = 0;} new Point.origin()
    工厂模式构造方法:factory X(String type){if(type=='type1') return x;if(type=='type1') return y;}一般要搭配命名构造方法使用
    extends implements
    运算符重载 bool operator <(Point v) => x < v.x && y < v.y;
    mixin 实现多继承:被混入的类 mixin X {...} 继承 class A extends Y with X, Z {...}
    异常可以直接 throw "string" 或 throw Exception("xxx")
    捕获异常:try {...} on AException {...} on BException {...} on Exception catch (e) {...} catch (e) {...}
    重新抛出异常:rethrow
    Finally
    异步处理 Future=Promise async/await
    异步数据序列 Stream await for (数据类型 变量 in stream类型变量) {// 处理数据}
相关推荐
এ慕ོ冬℘゜8 分钟前
前端实战:jQuery实现动态表格渲染与状态切换功能
前端·javascript·jquery
zzzzzz31012 分钟前
react-bits:把酷炫动效从“灵感截图”变成可复用的 React 组件
javascript·react.js·动效
海兰8 小时前
【应用】基于 Next.js 16 + Python mplfinance的金融K线图与技术指标可视化平台(三)
javascript·python·金融
小磊哥er9 小时前
深入解构Claude Code - 第 7 篇 · 连接外面的世界
javascript·ai编程
小磊哥er10 小时前
深入解构Claude Code - 第 6 篇 · 终端里的图形界面
javascript·ai编程
海兰10 小时前
【应用】基于 Next.js 16 + Python mplfinance的金融K线图与技术指标可视化平台(一)
javascript·python·金融
可乐鸡翅yeah_11 小时前
hls.js 内存泄漏实战排查,直播 M3U8 长时间播放异常定位方案
开发语言·javascript·python·django·ecmascript·m3u8·m3u8在线
可乐鸡翅yeah_11 小时前
第三方接口对接 M3U8 流媒体排坑实战,解决外部服务商流兼容难题
前端·javascript·python·django·html·m3u8·m3u8在线
默_笙12 小时前
🏠 「LLM Notes」:我用 Next.js + Redis 给自己造了个笔记博客
前端·javascript
ruanCat13 小时前
Prettier 明明执行成功,Markdown 为什么还是没变?一次插件误诊复盘
前端·javascript·node.js