Flutter Dart语言(04)库操作
0 说明
该系列教程主要是为有一定语言基础 C/C++的程序员,快速学习一门新语言所采用的方法,属于在C/C++基础上扩展新语言的模式。
1 自定义库 & 系统自定义库
引入代码如下所示:
import 'xxx.dart'; //自定义库引入,xxx为本地路径
import 'dart:async'; //系统库引入
2 第三方库引入(Pub包管理系统)
一般从官方网站:Page 1 | Top packages中 搜索需要的第三方库,打开项目中的配置文件,名为:pubspec.yaml,找到dependencies选项,这里以ffi库引入为例,搜索到后点进去,进入installing 选项下,对应的dependencies配置添加到本地中,配置文件参考如下:
dependencies:ffi: ^2.0.2
之后执行pub get 命令获取该第三方库到本地。接下来就可以引入使用了,参考example编写,代码如下所示:
import 'dart:ffi'; //引入的第三方库头文件
import 'package:ffi/ffi.dart';//引入的第三方库头文件//该部分来自三方库ffi的example demo
void main() {// Allocate and free some native memory with calloc and free.final pointer = calloc<Uint8>();pointer.value = 3;print(pointer.value);calloc.free(pointer);// Use the Utf8 helper to encode zero-terminated UTF-8 strings in native memory.final String myString = '😎👿💬';final Pointer<Utf8> charPointer = myString.toNativeUtf8();print('First byte is: ${charPointer.cast<Uint8>().value}');print(charPointer.toDartString());calloc.free(charPointer);
}
3 库的冲突解决
如果我们引用了两个库文件,demo1.dart和demo2.dart,这两个库文件中都有对exec类的定义,那么直接使用exec方法肯定会报错,如下所示:
import 'package:dart_demo/demo1.dart';
import 'package:dart_demo/demo2.dart';main() {//报错,因为清楚调用的是哪一个库文件里定义的Exec类Exec e = new Exec();
}
C++是使用namespace命名空间来解决,实际上Dart中也使用类似的思想来解决该问题,那就是as关键字给引用到的库重命名,参考如下:
import 'package:dart_demo/demo1.dart';
import 'package:dart_demo/demo2.dart' as lib;main() {Exec e = new Exec(); //demo1中Execlib.Exec e = new lib.Exec(); //demo2中Exec
}
4 库的局部导入与局部屏蔽
这里的导入分两种方式,一种是通过关键字show引入部分可用方法,一种是通过hide关键字隐藏不可用方法,代码参考如下:
//表示只可以使用demo1.dart库文件中的fun1()方法
import 'demo1.dart' show fun1; //表示不可以使用demo2.dart库文件中的fun2()方法
import 'demo2.dart' hide fun2;
相关文章:
Flutter Dart语言(04)库操作
0 说明 该系列教程主要是为有一定语言基础 C/C的程序员,快速学习一门新语言所采用的方法,属于在C/C基础上扩展新语言的模式。 1 自定义库 & 系统自定义库 引入代码如下所示: import xxx.dart; //自定义库引入,xxx为本…...
通向架构师的道路之漫谈使用ThreadLocal改进你的层次的划分
一、什么是ThreadLocal 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线…...
springboot全局统一返回处理
文章目录 前言一、统一的返回格式二、全局异常处理三、全局返回处理(装逼用的)总结 前言 项目中一般都会有规定好的接口返回格式,无论成功与失败,一般格式都是不变的,这样是为了方便前后端统一处理,今天就来说下前后端统一处理的较为优雅的方式; 一、统一的返回格式 一般而言…...
C/C++面试经历(一)
目录 1. 说说你对C与C的认识? 2. 说说C的三大特性? 3. 说说C的重载? 4. C语言为什么不支持重载? 5. 说说类的默认成员函数? 6. 类的构造函数为什么不支持虚函数? 7. 说说你对指针和引用的理解&…...
【PostgreSQL】系列之 一 用户创建和授权(三)
🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁 🦄 个人主页——🎐开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的…...
Python连接Hive实例教程
一 Python连接hive环境实例 经在网络查询相关的教程,发现有好多的例子,发现连接底层用的的驱动基本都是pyhive和pyhs2两种第三方库的来连接的 hive,下面将简介windows 10 python 3.10 连接hive的驱动程序方式,开发工具:pycharm …...
Jest和Mocha对比:两者之间有哪些区别?
目录 什么是单元测试? Jest和Mocha介绍 Jest Jest的特点: Jest的使用限制 Mocha Mocha的特点 使用Mocha的限制 Jest和Mocha的全面比较 我们应该使用哪个测试框架? 结论 什么是单元测试? 所谓单元测试,是对软…...
Oracle:merge into用法
文章目录 merge into使用场景merge into语法测试表普通模式 merge使用注意点 merge into MERGE 是 Oracle9i 新增的语法,根据源表对目标表进行匹配查询,匹配成功时更新,不成功时插入 比单独的 update insert 的方式效率要更高,尤…...
【数据结构OJ题】消失的数字
原题链接:https://leetcode.cn/problems/missing-number-lcci/ 目录 1. 题目描述 2. 思路分析 3.代码实现 1. 题目描述 2. 思路分析 方法一:排序遍历(下一个数不等于上一个数1,这个下一个数就是消失的数字)。 时…...
linux 隔离内核
1、 编辑grub gedit /etc/default/grub 2、修改 GRUB_CMDLINE_LINUX_DEFAULT"quiet splash isolcpus1,3"(这里表示1和3两个cpu被隔离,cpu序号从0开始) or GRUB_CMDLINE_LINUX"isolcpus1,3" 3、update sudo update-grub 4、查看…...
IO学习-有名管道
1,要求实现AB进程对话 A进程先发送一句话给B进程,B进程接收后打印 B进程再回复一句话给A进程,A进程接收后打印 重复1.2步骤,当收到quit后,要结束AB进程 运行结果:...
小研究 - 基于 SpringBoot 微服务架构下前后端分离的 MVVM 模型(三)
本文主要以SpringBoot微服务架构为基础,提出了前后端分离的MVVM模型,并对其进行了详细的分析以及研究,以此为相关领域的工作人员提供一定的技术性参考。 目录 6 互联网应用开发架构分析 6.1 微服务架构与单体架构 6.1.1 系统更改部署 6.1…...
应用在多媒体手机中的低功率立体声编解码器
多媒体手机一般是指可以录制或播放视频的手机。多媒体的定义是多种媒体的综合,一般是图像、文字、声音等多种结合,所以多媒体手机是可以处理和使用图像文字声音相结合的移动设备。目前流行的多媒体概念,主要是指文字、图形、图像、声音等多种…...
Teams Room视频会议室方案
需求背景: 适合在40平米的会议室参加Teams视频会议,会议桌周围可以坐20人,要求: 1,操作简单,一键入会Teams Room; 2,任何人带上自己的笔记本电脑,可以分享电脑画面&#…...
C# 委托、事件、特性程序
委托和事件 public partial class Form1 : Form { public Form1() { InitializeComponent(); Man man new Man("小明"); Roommate[] roommates { new Roommate("小张"), new Roommate("小朱"), …...
MapTR论文笔记
MAPTR: STRUCTURED MODELING AND LEARNING FOR ONLINE VECTORIZED HD MAP CONSTRUCTION 目的 传统高精地图 通过一些离线的基于 SLAM 的方法生成,需要复杂的流程以及高昂的维护费用。基于 bev 分割的建图方法,缺少向量化 实例级的信息,比如…...
JS进阶-Day4
🥔:流水不争先争滔滔不绝 JS进阶-Day1——点击此处(作用域、函数、解构赋值等) JS进阶-Day2——点击此处(深入对象之构造函数、实例成员、静态成员等;内置构造函数之引用类型、包装类型等) JS进…...
【C语言】初阶完结练习题
🎈个人主页:库库的里昂 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:C语言初阶 ✨其他专栏:代码小游戏 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论…...
c++类与对象详解
c类与对象详解 对象类方法自定义类型类的特性this类的六个默认成员函数static成员友元内部类 对象 在C中,对象是类的实例。定义对象的语法为: <class_name> object_name;其中,class_name 是定义类时指定的类名,object_nam…...
I/O 函数/缓存和字节流、占位符、getchar(),putchar()
I/O 函数 C 语言提供了一些函数,用于与外部设备通信,称为输入输出函数,简称 I/O 函数。输入(import)指的是获取外部数据,输出(export)指的是向外部传递数据。 缓存和字节流 严格地…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...
车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...
