随笔分类 - 专业技术
摘要:
我们编写好的应用程序、或者本地部署的大模型,想临时分享给外网访问以进行功能演示,通过ngrok内网穿透软件,可以快速满足我们的需求……
阅读全文

摘要:
前面多文介绍了Dart编程语言的基本语法和语言特性。从本文开始,我们通过一个Flutter App的编码过程,完成Flutter的学习,包括Flutter基础知识,Flutter App启动页,Tab页,个人设置页,SQLite数据库,HTTP API调用,到最后Flutter App打包等……
阅读全文

摘要:
Dart库中有大量返回结果为Future或Stream类型的函数,它们都是异步函数,函数的返回结果在构建可能存在耗时操作之后就返回了(如:网络IO操作),而不是同步等到这些耗时操作完成后在返回。关键字async和wait简化了异步编程(如:回调地狱),让异步代码的编写看起来像同步代码一样……
阅读全文

摘要:
Dart 3.0版本新增了很多新特性,包括有名的健全的空安全;同时针对类型(包括Mixin),除之前的abstract修饰符之外,还增加了base,final,interface和sealed等修饰符。今天我们来一起看下,这些类型修饰符,它们有哪些使用场景、使用时有哪些约束,和如何组合使用……
阅读全文

摘要:
扩展方法(Extension methods)是Dart语言的另一个高级的特性,我们可以在不改变、不继承原类型或类情况下,给类型或类增加方法,增强其功能。在Java中,我们经常看到StringUtils/MapUtils等String/Map类型的工具类,但是在Dart中,这些工具类统统不需要,因为可以直接给String/Map类增加扩展方法(Extension methods)达到同等目的……
阅读全文

摘要:
今天我们来看看Dart语言的一个有趣的特性——可调用对象。对象也可以像函数那样被调用,这个特性是怎么用的呢……
阅读全文

摘要:
Dart语言和其他面向对象语言一样,子类可以继承父类,获得父类的属性和方法。那么Dart语言,类继承还有什么特性呢……
阅读全文

摘要:
类方法就是为对象提供一些数据操作的函数,也就是类方法是操作对象的函数。那么在Dart中,类方法到底有哪些特别之处呢……
阅读全文

摘要:
我们通过类构造函数来创建对象,上文(第14天)我们学到,与Java不同,创建Dart对象时可以省略构造函数之前的new关键字。同时,Dart语言除默认构造函数外,还有命名构造函数,重定向构造函数,常量构造函数和工厂构造函数等……
阅读全文

摘要:
通过前面13天的学习,对Dart基础有了系统的熟悉,今天我们开始学习Dart类和对象,本文主要学习Dart类,包括类方法,构造器,对象类型,实例变量,隐性接口,类变量和类方法等……
阅读全文

摘要:我们在调试Web页面时,期望能使用80端口调试(比如本博客站点的每篇博客,我在发布之前,均需要在我的Mac电脑进行博客内容和样式的调试和校验)。而Mac电脑的80端口默认被系统Apache服务占用,下面分享我常用的2种使用80端口调试Web站点页面的办法……
阅读全文
摘要:
错误也可以理解为异常,代表应用程序在执行过程中的发生了非预期的行为,常见异常比如有空指针、数组越界、网络超时、IO异常等,Dart语言也支持抛出和捕获异常。和Java不同的是,Dart语言只有未检测异常。Dart中的异常需要被捕获并被处理,否则可能导致程序退出……
阅读全文

摘要:
本文是Dart语言学习的第12天,和前面11天相比,本文可能相对比较简单,因为本文要学习的是Dart语言的控制流,也就是循环和分支。且前面的11天学习中,多多少少都涉及到了控制流,同时对Java或者JavaScript比较熟悉的朋友,可能比较容易上手……
阅读全文

摘要:
Dart语言是纯面向对象的编程语言,就算是函数(对象的成员函数一般称为方法)也是对象,它也有类型,那么函数也可以作为其他函数的参数,或者赋值给其他变量。除此之外,Dart中的函数还有什么特别之处、它有什么规则和约束……
阅读全文

摘要:
Pattern模式是Dart 3.0发布的3个高级特性之一,在第09天我们学习了模式的概览和用法,对模式的强大之处有了基本的认识,今天我们来看看Dart中的全部模式类型,总共有15种,它们包括逻辑或、逻辑与、关系、值转换、空检测、空断言、常量、变量、标识符、括号、List列表、Map映射、Record记录、对象和通配符……
阅读全文

摘要:
Dart 3.0在语法层面共发布了3个高级特性,第一个特性Record记录我们在前面已经学习和探究。今天我们来学习第二个高级类型Pattern模式,由于内容较多,共分2篇文章进行介绍,本文首先介绍模式的概览和用法,包括匹配、解构、在变量申明、赋值、循环、表达式等应用场景……
阅读全文

摘要:
我们来继续学习Dart语言的类型,包括Dart内置类型、Record记录类型(Dart 3开始支持)、集合类型、泛型和typedef类型别名。在前面的学习中,基础内置类型、集合和泛型都有所涉及和应用,本文我们和其他类型逐一进行介绍……
阅读全文

摘要:
我们前面完成了Dart语言基础特性的学习,包括基础语法概览、迭代集合、异步编程、Mixin高级特性和变量等。今天我们来学习Dart的库相关知识,包括如何导入库、指定库前缀、导入部分或者排除部分库、延迟导入库等,最后看下Dart中67个关键字作为标识符的一些约束……
阅读全文

摘要:
前面几天的学习,我们了解了Dart语言的特性(基础语法概览、迭代集合、异步编程和Mixin高级特性)。今天我们深入学习Dart的变量,包括:空安全(Null safety)、变量默认值、延迟变量(late)、final变量和const常量……
阅读全文

摘要:
在Java语言中,子类只能继承extends单个父类,实现implements多个接口(即单继承和多实现)。在Dart语言中,所有类型均是Object子类,它们也是单继承和多实现,但Dart中有个Mixin的高级特性,它可以做到更多的代码复用(单继承、多实现、多Mixin代码复用)……
阅读全文
