【ROS】使用pluginlib自定义costmap地图层
文章目录
文章目录
前言
一、重写地图层
1.包含头文件
2.onInitialize()
3.updateBounds()
4.updateCosts()
二、向ROS注册
1.插件描述文件
2.向ROS注册插件
3.在costmap配置文件中使用
总结
前言
pluginlib是一个 C++ 库,用于从 ROS 包中加载和卸载插件。插件是从运行时库(即共享对象、动态链接库)加载的动态可加载类。使用 pluginlib,人们不必将他们的应用程序显式链接到包含类的库,相反,pluginlib 可以在任何时候打开一个包含导出类的库,而无需应用程序事先知道该库或包含类定义的头文件. 插件可用于在不需要应用程序源代码的情况下扩展/修改应用程序行为。
在costmap中就为用户提供了便捷丰富的地图层接口,用户可以使用C++中的继承操作,继承costmap_2d中的类,然后重写其中的虚函数,以实现自己的地图层功能,本文以添加禁用区域为例说明如何实现一个自定义的costmap地图层。
一、重写地图层
1.包含头文件
为了允许动态加载类,必须将其标记为导出类。这是通过特殊宏PLUGINLIB_EXPORT_CLASS完成的。一般PLUGINLIB_EXPORT_CLASS都写在文件的开头,以虚拟墙地图层为例:
#include <costmap_prohibition_layer/costmap_prohibition_layer.h>
#include <pluginlib/class_list_macros.h>PLUGINLIB_EXPORT_CLASS(costmap_prohibition_layer_namespace::CostmapProhibitionLayer, costmap_2d::Layer)
如果想实现基本的地图层插件至少要重写这几个函数:
- void onInitialize():在costmap执行初始化initialize后会执行这个函数,相当于为用户提供的初始化接口。
- void updateBounds(double robot_x, double robot_y, double robot_yaw, double *min_x, double *min_y, double *max_x, double *max_y):计算插件图层要更新到主图层区域的大小,每个图层都可以增加这个尺寸,如下图(b)所示
- void updateCosts(costmap_2d::Costmap2D& master_grid, int min_i, int min_j, int max_i, int max_j):将每个图层的代价值更新到主图层,如下图(c)(d)(e)所示
2.onInitialize()
onInitialize()函数主要执行一些初始化工作,如下面代码所示,下面进行逐行讲解。
void CostmapProhibitionLayer::onInitialize(){ros::NodeHandle nh("~/" + name_);current_ = true;_dsrv = new dynamic_reconfigure::Server<CostmapProhibitionLayerConfig>(nh);dynamic_reconfigure::Server<CostmapProhibitionLayerConfig>::CallbackType cb =boost::bind(&CostmapProhibitionLayer::reconfigureCB, this, _1, _2);_dsrv->setCallback(cb);// get a pointer to the layered costmap and save resolutioncostmap_2d::Costmap2D *costmap = layered_costmap_->getCostmap();_costmap_resolution = costmap->getResolution();// set initial bounds_min_x = _min_y = _max_x = _max_y = 0;// reading the prohibition areas out of the namespace of this plugin!// e.g.: "move_base/global_costmap/prohibition_layer/prohibition_areas"std::string params = "prohibition_areas";if (!parseProhibitionListFromYaml(&nh, params))ROS_ERROR_STREAM("Reading prohibition areas from '" << nh.getNamespace() << "/" << params << "' failed!");_fill_polygons = true;nh.param("fill_polygons", _fill_polygons, _fill_polygons);// compute map bounds for the current set of prohibition areas.computeMapBounds();ROS_INFO("CostmapProhibitionLayer initialized.");
}
创建ros节点句柄:
ros::NodeHandle nh("~/" + name_);
current_ = true;
创建动态配置的服务器和回调函数,并为服务器配置回调函数,这部分在我的其他文章进行过详细说明。
_dsrv = new dynamic_reconfigure::Server<CostmapProhibitionLayerConfig>(nh);
dynamic_reconfigure::Server<CostmapProhibitionLayerConfig>::CallbackType cb =boost::bind(&CostmapProhibitionLayer::reconfigureCB, this, _1, _2);
_dsrv->setCallback(cb);
获得地图数据的指针和分辨率参数:
// get a pointer to the layered costmap and save resolutioncostmap_2d::Costmap2D *costmap = layered_costmap_->getCostmap();_costmap_resolution = costmap->getResolution();
从yaml文件中读取虚拟墙区域:
// reading the prohibition areas out of the namespace of this plugin!// e.g.: "move_base/global_costmap/prohibition_layer/prohibition_areas"std::string params = "prohibition_areas";if (!parseProhibitionListFromYaml(&nh, params))ROS_ERROR_STREAM("Reading prohibition areas from '" << nh.getNamespace() << "/" << params << "' failed!");
从launch文件中读取参数,是否完全更新多边形区域,然后computeMapBounds()函数用来计算更新区域的最大最小值。
_fill_polygons = true;
nh.param("fill_polygons", _fill_polygons, _fill_polygons);// compute map bounds for the current set of prohibition areas.
computeMapBounds();ROS_INFO("CostmapProhibitionLayer initialized.");
3.updateBounds()
updateBounds()函数用来根据刚才computeMapBounds()计算得到的最大最小区域更新costmap中定义的最大最小区域变量double *min_x, double *min_y, double *max_x, double *max_y:
void CostmapProhibitionLayer::updateBounds(double robot_x, double robot_y, double robot_yaw, double *min_x, double *min_y, double *max_x, double *max_y)
{if (!enabled_)return;std::lock_guard<std::mutex> l(_data_mutex);if (_prohibition_points.empty() && _prohibition_polygons.empty())return;*min_x = std::min(*min_x, _min_x);*min_y = std::min(*min_y, _min_y);*max_x = std::max(*max_x, _max_x);*max_y = std::max(*max_y, _max_y);}
这里面主要就是进行了一个赋值操作
4.updateCosts()
updateCosts()是最主要的功能,用来将地图层的代价更新到主图层,这里面主要有两个部分,第一个循环是更新禁止通行的区域,第二个循环是更新禁止通行的点(因为这个图层约定的yaml文件格式可以选择禁用点或直线或区域,所以这里分开处理)
void CostmapProhibitionLayer::updateCosts(costmap_2d::Costmap2D &master_grid, int min_i, int min_j, int max_i, int max_j)
{if (!enabled_)return;std::lock_guard<std::mutex> l(_data_mutex);// set costs of polygonsfor (int i = 0; i < _prohibition_polygons.size(); ++i){setPolygonCost(master_grid, _prohibition_polygons[i], LETHAL_OBSTACLE, min_i, min_j, max_i, max_j, _fill_polygons);}// set cost of pointsfor (int i = 0; i < _prohibition_points.size(); ++i){unsigned int mx;unsigned int my;if (master_grid.worldToMap(_prohibition_points[i].x, _prohibition_points[i].y, mx, my)){master_grid.setCost(mx, my, LETHAL_OBSTACLE);}}
}
先调用了setPolygonCost()函数将禁用区域的代价值设置为“致命障碍”(LETHAL_OBSTACLE)
// set costs of polygonsfor (int i = 0; i < _prohibition_polygons.size(); ++i){setPolygonCost(master_grid, _prohibition_polygons[i], LETHAL_OBSTACLE, min_i, min_j, max_i, max_j, _fill_polygons);}
setPolygonCost()函数如下:
void CostmapProhibitionLayer::setPolygonCost(costmap_2d::Costmap2D &master_grid, const std::vector<geometry_msgs::Point>& polygon, unsigned char cost,int min_i, int min_j, int max_i, int max_j, bool fill_polygon)
{std::vector<PointInt> map_polygon;for (unsigned int i = 0; i < polygon.size(); ++i){PointInt loc;master_grid.worldToMapNoBounds(polygon[i].x, polygon[i].y, loc.x, loc.y);map_polygon.push_back(loc);}std::vector<PointInt> polygon_cells;// get the cells that fill the polygonrasterizePolygon(map_polygon, polygon_cells, fill_polygon);// set the cost of those cellsfor (unsigned int i = 0; i < polygon_cells.size(); ++i){int mx = polygon_cells[i].x;int my = polygon_cells[i].y;// check if point is outside boundsif (mx < min_i || mx >= max_i)continue;if (my < min_j || my >= max_j)continue;master_grid.setCost(mx, my, cost);}
}
先通过这几行代码,将多边形区域的世界坐标转化为地图边界,存储在loc变量中(作者定义的结构体,有两个变量int x和int y),然后通过rasterizePolygon函数获得这个区域内所有单元格的地图坐标
std::vector<PointInt> map_polygon;
for (unsigned int i = 0; i < polygon.size(); ++i)
{PointInt loc;master_grid.worldToMapNoBounds(polygon[i].x, polygon[i].y, loc.x, loc.y);map_polygon.push_back(loc);
}std::vector<PointInt> polygon_cells;// get the cells that fill the polygon
rasterizePolygon(map_polygon, polygon_cells, fill_polygon);
这个循环是根据获得的序号设置代价值,关键函数是setCost函数,根据每一个单元格的地图坐标,将其代价值设置为“致命障碍”
// set the cost of those cells
for (unsigned int i = 0; i < polygon_cells.size(); ++i)
{int mx = polygon_cells[i].x;int my = polygon_cells[i].y;// check if point is outside boundsif (mx < min_i || mx >= max_i)continue;if (my < min_j || my >= max_j)continue;master_grid.setCost(mx, my, cost);
}
然后这个循环就更简单了,直接使用worldToMap()函数将世界坐标转化为地图坐标,然后根据获得的地图坐标使用setCost()函数设置代价值。
// set cost of pointsfor (int i = 0; i < _prohibition_points.size(); ++i){unsigned int mx;unsigned int my;if (master_grid.worldToMap(_prohibition_points[i].x, _prohibition_points[i].y, mx, my)){master_grid.setCost(mx, my, LETHAL_OBSTACLE);}}
二、向ROS注册
1.插件描述文件
插件描述文件是一个 XML 文件,用于以机器可读格式存储有关插件的所有重要信息。它包含有关插件所在的库、插件名称、插件类型等的信息。对于虚拟墙禁用图层,它的描述性文件是这样的:
<library path="lib/libcostmap_prohibition_layer"><class type="costmap_prohibition_layer_namespace::CostmapProhibitionLayer" base_class_type="costmap_2d::Layer"><description>ROS-Package that implements a costmap layer to add prohibited areas to the costmap-2D by a user configuration.</description></class>
</library>
library标签定义插件类所在的库。一个库可能包含多个不同类类型的插件。
class标签描述了库提供的类。
属性:
-
name :类的查找名称。由pluginlib工具用作插件的标识符。
- type :完全限定的类的类型。
- base_class_type :基类的完全限定类型
- description :类及其作用的描述。
更详细的描述可以查看这个文档。
2.向ROS注册插件
为了让 pluginlib 查询系统上所有 ROS 包中的所有可用插件,每个包必须明确指定它导出的插件以及哪些包库包含这些插件。插件提供者必须在其导出标记块内的package.xml中指向其插件描述文件,需要在package.xml文件最后添加这样一个标签:
<export><costmap_2d plugin="${prefix}/costmap_plugins.xml" /></export>
当然需要在前面添加对基类(costmap_2d)的依赖:
<depend>costmap_2d</depend>
然后在工作空间中使用catkin_make或catkin_make_isolated编译即可,然后使用以下命令查看:
rospack plugins --attrib=plugin costmap_2d
如果出现以下结果,则说明插件可用:
costmap_prohibition_layer /home/lyh/catkin_acad/src/costmap_prohibition_layer-repush3/costmap_plugins.xml
costmap_2d /opt/ros/kinetic/share/costmap_2d/costmap_plugins.xml
3.在costmap配置文件中使用
在参数配置文件夹中找到 global_costmap_params.yaml 和/或 local_costmap_params.yaml,在末尾添加或修改:
plugins:- {name: static_map, type: "costmap_2d::StaticLayer"}- {name: obstacles, type: "costmap_2d::VoxelLayer"}- {name: inflation_layer, type: "costmap_2d::InflationLayer"}- {name: costmap_prohibition_layer, type: "costmap_prohibition_layer_namespace::CostmapProhibitionLayer"}
对于虚拟墙地图层,还需要在param文件夹中自己配置一个设置禁止区域的参数文件,在参数配置文件夹(就是和 global_costmap_params.yaml 以及 local_costmap_params.yaml 相同位置的文件夹)中创建新的文档,命名为 "prohibition_areas.yaml",然后在prohibition_areas.yaml文档中输入:
prohibition_areas:
#定义一个禁止点- [17.09, -6.388]
# 定义一个禁止通行的线- [[8.33, 2.11],[8.26, 5.11]]
# 定义一个禁止通行的区域- [[-11.15, -15.614],[-12.35, -13.89],[-10.05, -12.218]]
注意事项:
1.一定要严格按照上述格式来设置坐标,可能出现情况:
(1)坐标前的短横线没对齐
(2)定义禁止区域或者禁止线,两坐标之间缺少了逗号
2.你可以同时定义多个禁止点/多个禁止线/多个禁止区域,或者混合定义多个点/线/区域.
总结
本文以虚拟墙禁用层为例,详细介绍了如何实现一个自定义的costmap地图层,以及如何在ROS中使用pluginlib制作一个插件,插件机制应用广泛,使用C++的类继承为用户提供了极大的便利。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4500074.html
如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!
问到ThreadLocal,看这一篇就够了|原创
ThreadLocal 原理和常见问题详解。已同步更新到博客中,点击阅读原文查看。点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达ThreadLocal 是什么?ThreadLocal 是线程本地变量。当使用 ThreadLocal 维护变量时…...

控制流和数据流
数据流 数据流——描述程序运行过程中数据的流转方式及其行为状态 在MVC模型中,Model层的本质就是“数据”,数据在MVC的各个构成要素中流转并且在不同的层次扮演着不同的角色。当程序运行起来之后,我们会发现正是由于数据的流转,…...

nginx练习
1. 源码安装nginx,并提供服务脚本。 wget http://nginx.org/download/nginx-1.20.1.tar.gztar xvf nginx-1.20.1.tar.gz -C /usr/local/nginx (1)安装 Nginx 所需的 pcre 库 (2)安装 openssl-devel yum install -y…...

C++模板之——函数模板详解及代码示例
一、模板特点 模板只是一个框架,不可以直接使用目的是为了提高代码复用性,将类型参数化 二、分类 C提供两种模板机制:函数模板和类模板。是一种泛型编程思想。 2.1 函数模板 语法: // 作用:建立一个通用函数&…...

d你好Arduino
原文 ldc支持gdc风格汇编 avrd d的avr 有两个选项可链接ldc发出的编译目标文件:用avr-gcc的链接器,或用llvm的内部链接器.-gccavr-gcc参数告诉在哪查找avr-gcc工具,或可用使用llvm的内置链接器的--link-internally.两者都会起作用. 使用-gcc相关的好处是可arduino studio,因为…...

Web_APIs
web APIs 第一天 DOM-获取DOM元素、修改属性 Web API 基本认知获取DOM对象设置/修改DOM元素内容设置/修改DOM元素属性定时器-间歇函数 01 Web API 基本认知 1. 作用和分类 作用: 就是使用 JS 去操作 html 和浏览器分类:DOM (文档对象模型)、BOM(浏览…...

xml文件导入wps_#WPS表格怎么导入XML数据?#excel怎样导入wps表格数据
WPS表格怎么导入XML数据?他们说的都不对还,WPS发展到现Office好用多了,不用像Office那样需要XML映射,直xml拖拽到WPS表格里选择表开即可PS:有的人之直接拖拽过来还是不行是什么原因呢?那是因为有的人后缀名…...

java怎么判断素数_java判断素数(质素)
素数就是质素,英文是Prime Number。概念:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除的数称之为素数。否则称之为合数。下面是java判断素数的几种方法:/*** 时间复杂度O(n)** param n* return*/public st…...

TRC丨艾美捷TRC 波普瑞韦代谢物 M4说明书
艾美捷TRC 波普瑞韦代谢物 M4—丙型肝炎病毒 NS3 丝氨酸蛋白酶抑制剂 Boceprevir (B675500) 的代谢物。 艾美捷TRC 波普瑞韦代谢物 M4化学性质: 目录号B674520 化学名称波普瑞韦代谢物 M4 同义词(1R,2S,5S)-3-[(2S)-2-[[[[1,1-二甲基乙基]氨基]羰基]氨基]-3,3-二…...

angr生成控制流图CFG遇到的问题
环境:Windows 10; Python 3.7.3(虚拟环境) 依赖的第三方库:angr; angr-utils; bingraphvis; 1、AttributeError: XRef object has no attribute sort 错误定位在 "{{虚拟环境路径}}\lib\site-packages\bingraphvis\angr\ann…...

android版 git客户端下载,Pocket Git 是 Android 手机上一个 Git 客户端工具
Pocket Git 是 Android 手机上一个 Git 客户端工具,功能包括:支持 Git 的各种操作图形化的提交日志查看功能内置 diff 文件比较支持 SSH 密钥或者用户名密码方式登录可以自动捕获 Github 或者 Bitbucket 的 URL, 只需使用浏览器分享功能给 Po…...
超大型电商系统架构解密-韩军
超大型电商系统架构解密-韩军 1号店目前系统的负载能力每分钟可以支持5千单,支持销售1,200万件商品。Hedwig是1号店平台的核心中间件,主要由RPC框架,异步消息平台和服务治理平台组成。 对其内容详细阅读...

字符串题目:重新排列字符串
文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目 标题和出处 标题:重新排列字符串 出处:1528. 重新排列字符串 难度 3 级 题目描述 要求 给你一个字符串 s\texttt{s}s 和一个长度相同的整数数组 indices\t…...

python运维是做什么的_Python运维工程师主要干什么?
Python运维工程师主要干什么? 更新时间:2020年05月09日 作者:spoto 广义运维工程师的职责介绍 Python运维工程师主要干什么?其实无论是做什么运维,运维工程师最基本的职责都是负责服务的稳定性,确保服务可以二十四小时不间断地为…...

Spring 第三方bean管理(第三方bean注入资源)(以druid为例子)
第三方bean管理 步骤: 1.在config文件里面定义一个以第三方文件命名的Java类 2.在java类中定义一个方法获取响应的bean 3.添加Bean,表示当前方法的返回值是一个bean 4.在主配置Java类中加入Import({JdbcConfig.class}),此注解只能添加依次&am…...

Navicat导入excel表格的数据varchar类型字段多了小数点怎么解决!
前言: 在开发测试阶段,经常需要造一些测试数据或者导入一些从uat环境拿过来的数据,所以通过Excel往Navicat导入数据经常会遇到。今天分享的问题就是往Navicat导入excel表格的数据varchar类型字段多了小数点怎么解决的方案。 这里Navicat的版…...

麒麟Kylin-V10-arm64-操作系统永久修改分辨率——趟坑
目录 一、desktop方式 1、xrand介绍 1、xrandr命令概述 2、xrandr常用参数说明 2、desktop介绍 1、desktop概述 2、desktop文件模板 1、生成分辨率模型 2、编写sh分辨率脚本 3、编写desktop文件 二、Xorg方式 1、背景描述 一、desktop方式 1、xrand介绍 1、xrandr…...

【附源码】计算机毕业设计JAVA宠物美容网站
【附源码】计算机毕业设计JAVA宠物美容网站 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…...

android 检测EditText更改
public class MainActivity extends AppCompatActivity {String code "QQ";Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final EditText editText (EditText) find...

什么是布隆过滤器?如何使用?
欢迎搜索 文章目录一、布隆过滤器简介二、布隆过滤器的结构三、布隆过滤器应用四、布隆过滤器的优缺点五、布隆过滤器实战六、总结Redis缓存穿透可以通过布隆过滤器进行解决,那么什么是布隆过滤器呢?请往下看。通常你判断某个元素是否存在用的是什么&am…...

vb/vb.net百科技术文章精粹(1)
VB中用CommonDialog 如何设置 保存的文件夹名? [控件] $$winsock接收文件问题如何在Winform里控制Web页面,填写表单,提交如何显示指定文件名的ACCESS 查询或窗体用VB+SQL SERVER编程,当“rs!会员号”的值是NULL时࿰…...

html基础知识1
一、认识WEB 「网页」主要是由文字、图像和超链接等元素构成,当然除了这些元素,网页中还可以包括音频、视频以及Flash等。 「浏览器」是网页显示、运行的平台。 「浏览器内核」(排版引擎、解释引擎、渲染引擎) Web标准 「构成」👉 结构标…...

zeros什么意思_zeros:zeros还是zeroes?4)是什么意思?
复数变化形式中词尾是o时是加es还是s问:o :有时词尾是o的时候说在词尾加es 比如说 hero——heroes 还有时说直接...这个挺郁闷的, 先讲一下o:有生命物加es,无生命物加s,如tomato(es),photo(s)&a…...

java json去重_java json去重
java json去重[2021-01-29 14:17:50] 简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\ \;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐:《PHP视…...

Android 开源项目及库汇总
UI Awesome-MaterialDesign – MaterialDesignCenter改名为Awesome-MaterialDesign,优化了布局,新增了不少库。awesome-android-ui – ui库,非常多的ui及特效。ChipsLibrary – 在Android EditText中实现打Tag功能。bitmapMesh – 拉窗帘效果…...

用树莓派PICO做一个桌面时钟超详细教程!
用树莓派PICO做一个可显示时间和温湿度的桌面时钟一、概述二、材料准备1、树莓派PICO2、DHT11温湿度传感器3、DS1302时钟模块(选用)4、SSD1306屏幕5、其他材料三、开始1、连线2、写程序(1)使用内置RTC函数实现的时钟(2…...

插入排序(C++版)
#include <iostream> #include <vector> using namespace std;void print(vector<int>& nums){for(auto a: nums){cout<<a<<" ";}cout<<endl; }void insertSort(vector<int>& nums){int sizenums.size();if(size...

JAVA求素数
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JAVA求素数(质数)问题场景:一、素数的定义二、思路思路1思路2思路3输出结果问题场景: 例如:输出101~200之间的所有…...

Python超简单容易上手的画图工具库
今天,在网上发现一款很棒的python画图工具库。很简单的api调用就能生成漂亮的图表。并且可以进行一些互动。 pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒。废话不多说下来直接看…...

MySQL索引-2聚集索引探讨
本文目录 概述 innoDB中的索引 MyISAM中的索引 总结与开发经验 概述 聚集索引不是一种索引类型,而是一种数据存储方式,表示数据以主键索引的顺序进行聚集存储。 【聚集】表示数据行和主键聚簇存储在一起,数据行在磁盘的排列和索引排序保…...

Linux应用编程---8.共享内存
Linux应用编程—8.共享内存 共享内存是进程之间通讯的方式。大概原理是先申请一块共享内存,然后通过“映射”,映射到进程中。进程中读写这块被映射过来的内存,共享内存也会随之改变,同理其它进程也能做相同的操作。所以&#…...

Ryan的OC学习总结-----8 OC编码规范
一 命名规范 尽量不要采用缩写;采用美国英语;即清晰又简短。 常用命名方法: 匈牙利命名,一般只是命名变量,原则是:变量名=类型前缀+描述,如bFoo表示布尔类型变量&#…...

第一部分 基础篇 第三章 MongoDB体系结构
声明:该文章主要来自《MongoDB实战》一书内容,主要想通过该书学习MongoDB的相应知识,加深理解,故写在自己的博文当中,作为记录,在最后的章节中,会有一个自己集合MongoDB数据库应用的JavaEE的web应用。 Mon…...

大数据面试重点之kafka(三)
Kafka如何保证全局有序? 可回答:1)Kafka消费者怎么保证有序性?2)Kafka生产者写入数据怎么保证有序?3)Kafka可以保证 数据的局部有序,如何保证数据的全局有序?4࿰…...

iOS-自定义弹窗管理封装组件ZFJPopManager
ZFJPopManager 前言 有个小伙伴给我几百块钱,让我帮他写个弹窗管理的功能,然后我就利用闲暇时间做好了,完美的交付给他了,晚上我就拿钱美美的去吃顿火锅了🍲🍲🍲 闲来无事我又把我写的ZFJPopM…...
控制流图、圈复杂度
继续上次的测试作业,学习完程序插装的概念,今天学习测试的静态分析方法:绘制控制流图与计算圈复杂度。 一、控制流图: 一个过程或程序的抽象表现,常以数据结构链的形式表示。 二、圈复杂度: 复杂度越高&…...

真 彻底 Navicat导入Excel文件表时无法打开的四种解决办法
以前电脑从来都是正常的,自从今天折腾一天了,才找到解决办法,网上流传都是三种办法,实际上有一个被隐藏的,也是最容易忽略的就是方法4 方法1:navicat和Excel都是32或者64位 方法2:打开Excel表…...

使用Python将微信和支付宝账单导入随手记
简介 本文介绍如何使用Python将微信和支付宝账单转换为可以导入随手记的文件,实现微信和支付宝账单的批量导入。 需求: 1、需要将支付宝和微信上的支出账单自动或半自动地导入到随手记中 已知信息: 1、支付宝和微信的app端都可以导出csv…...

linux如何用浏览器做桌面,怎样在浏览器中制作桌面应用
步骤1:入门WebDGap要求您首先添加应用程序的名称。-第二个加载应用程序的徽标。-最后,将应用程序的源文件加载到一个zip文件中。重要!!! (将zip文件导出为桌面/chrome应用程序或扩展名时,您的zip文件必须看…...

navicat导入excel数据出现中文乱码解决
在导入excel的数据到mysql数据库中,出现了中文乱码,那么如何解决呢?我使用的解决办法如下: 1.把excel文件去掉空格,可以ctrlf全局替换空格 2.把excel文件转换为csv文件 3.将csv文件用记事本打开,另存为编…...

php throw,PHP的Try, throw 和 catch简单用法
本文简单记录一下关于php中的 Try, throw 和 catch 的用法,后面有时间再做一个详细的解析。Try - 使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。Throw - 这…...

在线编辑视频、去重消重去水印视频深度处理什么视频批量采集下载软件好?在什么网站下载好?...
在线编辑视频、去重消重去水印 视频深度处理 什么视频批量采集下载软件好?在什么网站下载好? 有视频批量采集下载软件吗?在哪里下载安全? 好的视频去重消重去水印软件与视频下载软件 对视频进行深度处理的软件有吗?能去…...

运维是做什么的?史上最全互联网Linux工作规划!十分钟找到linux运维工程师职业方向!...
首先祝贺你选择学习Linux,你可能即将踏上Linux的工作之旅,出发之前,让我带你来看一看关于Linux和Linux运维的一切。Linux因其高效率、易于裁剪、应用广等优势,成为了当今中高端服务器的主要操作系统,并且处于一个不可替…...

要源代码,这个网红机械妖姬竟踢爆对方公司总部
想要开源代码,欢迎前来自取!于是,知名网红「机械妖姬」直接走进对方公司的办公室,没想到吧! 找开源代码? 一般人大概会选择全球最大「同性交友网站」GitHub。 但 亲自上门要源代码 这个操作你听说过么&…...

加解 解密
加密/解密问题思考为什么需要加密 / 解密?信息泄露可能造成什么影响?案例一:战争情报案例二:破译北斗部分编码?乌龙加密技术加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(…...

Kafka之路
Kafka 有broker重topic的高性能消息队列 💡在重topic的消息队列⾥必然需要topic的存在 消息队列的作用:解决通信问题 #环境准备 1.安装zk 官网下载,这里以3.4.14版本为例,由于是老版本,所以需要在链接中找到这句…...

Navicat导入Excel提示无法打开Excel文件
参考文档: Navicat Premium导入Excel提示无法打开Excel文件_Somnus陳的博客-CSDN博客_navicat导入excel无法打开文件 之前遇到一次,一直没有记录下来,再次遇到,还是不知所措,故记录下来,方便下次查看 需要先打开excel,再执行导入即可导入...

与notepad 相似的mysql编译器_安卓手机上有什么功能类似于notepad++的编程工具吗...
种类挺多的,最常见的有920TextEditor和DroidEdit这两种。虽然手机屏幕小,但写个html什么的倒也够用了DroidEdit Pro是一款手机应用,大小为1.92MB,系统要求Android 2.1及以上。(推荐学习:notepad)DroidEdit Pro(code ed…...

短视频消重去重九种方法,组合使用原创度更高,各平台轻松过原创
想做好视频去重,首先要了解视频查重的机制 网上流传的检查MD5其实已经过时了,现在MD5已经是过去式。 查重要对视频的方方面面进行检查,包括但不限于: 视频的标题,封面,描述,时长,标…...

【Java后台开发规范】--- 圈复杂度
文章目录前言其他类型的规范圈复杂度提炼方法if、else卫语句去else策略模式switch循环嵌套其他建议前言 做Java开发的,大多数可能都有看过阿里的Java后台开发手册,里面有关于Java后台开发规范的一些内容,基本覆盖了一些通用、普适的规范&…...

php wps导入数据库,wps excel表格怎么导入数据库-如何把excel表格导入wps
wps怎么将excel表格导入word在word中的菜单栏选择“插入”--“对象”--选择“新建”或者“由对象创建”。选择“新建”,在底下的框中选择需要的文档,创建空白文档嵌入到 word中。选择“由对象创建”创建,预览 电脑查找需要的文件,…...

平板电脑里安装python_10 个平板电脑上的 Python 编辑器
本文介绍 10 个可在 iOS 或 Android 平板电脑上的 Python 编程环境。Python 开发者可通过这些工具实现随时随地编码,蛋疼抑或爽极?Python 声称将实现 “在你的iPad或iPhone实现Python的禅“ ,不到比萨的价格你就可以购买的 Pythonista 并开始…...

博弈论——《取石子》《取石子游戏》
传送门:活动 - AcWing 思路: 结论:在所有堆的石子个数>1的情况下 只要石子数石子的堆d数-1b是奇数,那么先手必胜。b是不计算所有个数为1的石子堆得出的。的 b是奇数的情况下一定存在一个偶数后继,是偶数的情况下…...

Navicat导入excel的xlsx文件提示无法打开文件
navicat,Navicat for MySQL导入时显示如下信息(无法打开文件...): 解决方案: 1.打开excel文件另存为.xls或者.csv文件,然后再选择对应的格式导入试试。(不建议了,方案3比较好&#…...

pve安装黑苹果实录
一、pve 从模板安装 ubuntu 1. 从右上角创建CT 2. ubuntu更新源: sudo nano /etc/apt/sources.list注释掉原有源,替换下面的: deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliy…...

ElasticSearch-查询语法(全文查询)
文章目录ElasticSearch-查询语法(全文查询)matchmatch\_phrasematch\_phrase\_prefixmulti\_matchquery\_stringElasticSearch-查询语法(全文查询) 7之前查询时候是: 索引/文档类型/文档id (索引是库,文档类型是表,文档id对应行)7的时候: 索引/_doc/文档id ( 索引是表,_doc是默…...

点赞3K的《SpringBoot手册》,让你轻松吊打面试官
pring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发…...

控制流语句
控制流语句即用来实现对程序流程的选择、循环、转向和返回等进行控制。 用途:控制语句可以用于控制程序的流程, 以实现程序的各种结构方式。 一般情况下,程序按照语句编写顺序依次执行,形成了一个标准的面向过程的结构化形式。但…...

华为云ESC产品突飞猛进,引领行业成长
华为云ESC产品突飞猛进,引领行业成长 华为云 ESC产品在2020年Q1的季度部署中,仅用了3个月时间就完成了从0到1的跨越。一个全新的产品形态和全新的服务体验,使其在疫情期间成为“炙手可热”的爆款产品。 据介绍,目前华为云 ESC已覆…...

基于javaweb+jsp的汽车租赁管理系统
基于javawebjsp的汽车租赁管理系统 JavaWeb JavaBean JSP MVC MySQL Tomcat JavaScript idea eclipse MyEclipse Servlet SSM Maven … 部分代码实现JSP <div class"layui-form-item"><label class"layui-form-label">状态:</…...

[No0000B0]ReSharper操作指南1/16-入门与简介
安装指南 在安装之前,您可能需要检查系统要求。 ReSharper是一个VisualStudio扩展。它支持VisualStudio2010,2012,2013,2015和2017.安装完成后,您将在VisualStudio的主菜单中找到新的ReSharper条目。大多数ReSharper命令都可以在这个菜单中找到。但是&a…...
AI基础:特征工程-文本特征处理
0.导语特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。在此之前,我已经写了以下几篇AI基础的快速入门,本篇文章讲解特征工程基础第三部分:…...

Stimulsoft Ultimate v2021.2.1新增38项优化功能,修复超过100项体验反馈
Stimulsoft Ultimate是用于创建报表和仪表板的通用工具集。该产品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他环境的完整工具集。 无需比较产品功能,Stimulsoft Ultimate包含了共9种产品! 包括Windows Forms,A…...

【C#】C# 通关手册(持续更新......) 新手/文档/API/api/教程/官方/入门/基础/语法/.net/ASP.Net/.net c#/编程/金蝶/基础知识/汇总/零基础/简明教程/轻松玩
转载请注明来源 https://www.cnblogs.com/brucejiao/p/16188865.html 谢谢! 转载请注明来源 https://www.cnblogs.com/brucejiao/p/16188865.html 谢谢! 转载请注明来源 https://www.cnblogs.com/brucejiao/p/16188865.html 谢谢! 打赏 支付…...

ESP32设备驱动-TCS34725颜色传感器驱动
TCS34725颜色传感器驱动 文章目录 TCS34725颜色传感器驱动1、TCS34725介绍2、硬件准备3、软件准备4、驱动实现1、TCS34725介绍 TCS3472 器件提供红色、绿色、蓝色 (RGB) 和清晰光感应值的数字返回。 集成在芯片上并定位于颜色传感光电二极管的 IR 阻挡滤光片可最大限度地减少入…...

Revit(10)-参数-参数的获取与修改
系列文章目录 Revit开发中异常记录 Revit (1) - CAD - 获取图层 Revit (2) - CAD - 获取CAD文字 Revit (3) - 二开 -创建柱子 Revit (4) - 二开 -批量创建柱子 Revit (5) - 二开 -创建墙体 Revit (6) - Teigha - LayerTable Revit (7) - Teigha - BlockTable Revit(8)-数据结构…...

Revit二次开发——构件参数的读取与设置
1、得到一个构件Element,可以通过以下几种方法来取得参数: e.Parameters e.GetParameters(string name) e.get_Parameter(BuiltInParameter ); e.LookupParamter(string name) get_Parameter(BuiltInParameter )是最保险的,根据BuiltInParame…...

Revit元素与Dynamo元素之间的相互转换
欢迎加入BIM行业开发交流1群 群号:711844216(满),二群群号:1016453207 一、背景 小伙伴们在revit二次开发时,可能需要在C#中使用dynamo中的元素,或者在dynamo中使用Revit的元素。由于C#中对元素的数据定义…...

【7】SCI易中期刊推荐——计算机 | 人工智能(中科院4区)
🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…...

QT实现的翻金币小程序
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、场景及功能展示总结#介绍 vsqt5实现的一个翻金币的小程序 一、场景及功能展示 1.开始界面 点击start开始,会有按下弹起效果 2.选择关卡界面 3.游戏…...

微信小程序五星评价功能
需求如图: 1个星-很不满意; 2个星-不满意; 3个星-一般; 4个星-还不错; 5个星-很满意; 找了demo,删删改改,demo地址: https://www.jb51.net/article/150081.htm上代…...

计算机音乐数字乐谱星星点灯,星星点灯-郑智化-和弦谱-《弹吧》官网tan8.com-和弦谱大全,学吉他,秀吉他...
E此浏览器不支持画布Am Em抬头的一片天 是男儿的一片天Dm G C曾经在满天的星光下做梦的少年Am Em不知道天多高 不知道海多远Dm Em7 Am却发誓要带着你远走到海角天边Dm Em7 Am不负责任的誓言 年少轻狂的我Dm Em在黑暗中迷失才发现自己的脆弱Dm Em7 Am看着你哭红的眼睛 想着远离的…...

Android自定义View第五弹(可滑动的星星评价)
个人开发中自定义View系列(有需要的可以点击查看收藏) Android自定义view第一弹(防小米计步)Android自定义View第二弹(旋转的体重)Android自定义View第三弹(反人类尺子)Android自定…...

silicon labs Gateway HOST-NCP MQTT网关搭建
一、背景 目前正在开发一款中控网关,网关mcu跑Android系统,NCP采用EFR32MG21开发板,需要跑MQTT协议控制zigbee的网络。基于以上需求,下载了simplicity studio V5版本和最新的EmberZNet 7.2.0.0协议栈进行验证,发现新的GSDK已经不再支持MQTT功能,官方回答是EmberZNet 6.7…...

JavaScript点击产生星星
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title></title><style>div {width: 500px;height: 500px;background-color: black;border: 5px solid red;position: relative;}span {position...
弹幕效果实现
前言 昨天晚上11点了还没睡着,惆怅能力不足,但不知道怎么能快速的提升自己。呜呼哀哉,临睡前看了一个弹幕的效果实现的技术视频,听着很好的,自己在做电商这块也没写过弹幕。今天来到公司趁着闲暇按照人家说的思路写了…...

星星海SA2小贴士
Q1:什么是星星海SA2服务器? 答: 星星海 SA2 属于 CVM 全新一代机型,是最新一代采用 AMD EPYC处理器的实例,提供多种规格,具有超高性价比,稳定支撑 2020 年春节腾讯会议、腾讯会议、QQ、微信等自…...

打星星的c语言程序,用C语言弹小星星
#include int main(int argc, char const *argv[]){char cc;int i,j;int m[] { 0, 523, 587, 659, 698, 784, 880, 932,1046,1175};int s[] { 1, 1, 5, 5, 6, 6, 5, 4, 4, 3, 3, 2, 2, 1 };int t[] { 300, 300, 300, 300, 300, 300, 350, 300, 300, 300, 300, 300, 300, 30...

集合论的产生
康托尔是19世纪末20世纪初德国伟大的数学家,集合论的创立者。是数学史上最富有想象力,最有争议的人物之一。19世纪末他所从事的关于连续性和无穷的研究从根本上背离了数学中关于无穷的使用和解释的传统,从而引起了激烈的争论乃至严厉的谴责。…...

康托尔与集合论
康托尔与集合论康托尔是19世纪末20世纪初德国伟大的数学家,集合论的创立者。是数学史上最富有想象力,最有争议的人物之一。19世纪末他所从事的关于连续性和无穷的研究从根本上背离了数学中关于无穷的使用和解释的传统,从而引起了激烈的争论乃…...

关于GPL
GPL 来自ITwiki,开放的信息技术大百科 Jump to: navigation, <jumptoSearch>GNU通用公共许可证(简称为GPL),是由自由软件基金会发行的用于计算机软件的许可证。最初由Richard Stallman为GNU计划而撰写。目前大多数的GNU程序…...
原创 Linux、GUN/Linux、GUN、GPL以及各个发行版本详细介绍
转http://blog.csdn.net/youlianying/archive/2010/03/24/5411521.aspx学习Linux很久了,却对GUN,Linux,Linux发行版等无所了解,是不是觉得很对不起自己啊。呵呵,所以我就在网上找了些资料,总结在一起&#…...

51单片机——点亮LED
目录 LED基本参数 参数信息 参数解读 拉电流与灌电流 电路示意图 电阻选取 灌电流与拉电流区别 程序编写与现象展示 LED基本参数 参数信息 产品名称贴片发光二极管产品型号0603发光颜色 绿、红、蓝、翠绿、白、黄 电压2V~3.3V电流5~20mA功率0.01~0.06W使用寿命约50000小…...

马克思 第四章 资本主义的形成及其本质
一、单项选择题 1.商品的本质因素是(B) A.使用价值 B.价值 C.交换价值 D.价格 2.生产商品的劳动分具体劳动和抽象劳动,其中具体劳动的作用是(D) A. 创造新价值 B. 创造剩余价值 C. 创造必然价值 D. 创造使用…...
GUN,Linux,Linux发行版
学习Linux很久了,却对GUN,Linux,Linux发行版等无所了解,是不是觉得很对不起自己啊。呵呵,所以我就在网上找了些资料,总结在一起,还算是比较能说明问题的。什么是Linux? 也许很多人…...
linux知识2
什么是Linux? 也许很多人会不屑的说,Linux不就是个操作系统么。错!Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核。内核是什么?内核建立了计算机软件与硬件之间通讯的平台,…...

Linux、GUN/Linux、GUN、GPL以及各个发行版本详细介绍
学习Linux很久了,却对GUN,Linux,Linux发行版等无所了解,是不是觉得很对不起自己啊。呵呵,所以我就在网上找了些资料,总结在一起,还算是比较能说明问题的。 什么是Linux? 也许很…...

Linux的历史
学习Linux很久了,却对GUN,linux,Linux发行版等无所了解,是不是觉得很对不起自己啊。呵呵,所以我就在网上找了些资料,总结在一起,还算是比较能说明问题的。 什么是Linux? 也许很多…...

宏微经济学习笔记
宏观经济 第一章:概述 宏经研究分短期(生产能力既定)与长期(生产能力增长,技术进步,资本积累) 短期中分短期总供给曲线(价格,工资刚性(合同限制࿰…...

Linux、GUN/Linux、GUN、GPL以及各个发行版本详细介绍-扫盲篇
什么是Linux? 也许很多人会不屑的说,Linux不就是个操作系统么。错!Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核。内核是什么?内核建立了计算机软件与硬件之间通讯的平台,…...

小程序模板语法
小程序模板语法模板语法—数据绑定数据绑定的步骤应用场景示例模板语法—条件渲染条件渲染的两个方式wx:if vs hidden列表渲染—基础列表渲染简介基础用法手动指定索引和当前项的变量名列表渲染—进阶key的作用key的用法模板语法—数据绑定 数据绑定的步骤 在data中定义数据 P…...

JEECG开发问题
问题:后端工程导入之后报错:Cannot resolve org.hibernate:hibernate-re:2.3.01,如下图所示: 原因分析以及解决方案:...

mac安装cnpm报错(Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules)
新换了电脑,想要安装cnpm,结果刚刚跨出征服世界的第一步就摔倒了。 提示:Error: EACCES: permission denied, access /usr/local/lib/node_modules (没有权限) 原因: 执行命令行命令时没有获得管理员权限。 解决方法:…...

composer 报错 [RuntimeException] Could not delete 解决方法
该问题似乎主要出现在 vagrant的环境中(我用的是Homestead) 解决办法,修改composer的全局配置文件(你的路径可能和我不一样) vim /home/vagrant/.config/composer/config.json {"config": {"preferred-install&q…...

解决cocoapods下载第三方问题
问题 在使用pod进行下载第三方的时候经常报错,问题如下: [!] Error installing BMKLocationKit [!] /usr/bin/git clone https://github.com/jiangfangsheng/BMKLocationKit.git /var/folders/cj/qqyqrmbd2xz5_756mxxz8kdm0000gn/T/d20211210-7369-o23…...

如何解决安卓报错:android.content.ActivityNotFoundException: Unable to find explicit activity class
最近我在写安卓项目的时候,设计到一个intent的内容,设计到activity的跳转。但是在我运行项目时,出现了一个报错:E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.quotes, PID: 25663 android.content.Acti…...

vagrant下composer安装laravel-wechat时候,出现could not delete的错误
- Installing easywechat-composer/easywechat-composer (1.4.0): Loading from cache Plugin installation failed (include(/home/vagrant/code/vendor/easywechat-composer/easywechat-composer/src/Plugin.php): failed to open stream: No such file or directory), roll...

Intent 跳转页面报错 android.content.ActivityNotFoundException: Unable to find explicit activity class
2020-11-10 13:51:40.501 11020-11020/com.example.hscharge E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.example.hscharge, PID: 11020android.content.ActivityNotFoundException: Unable to find explicit activity class {......};have you declared this acti...

NLP-分类模型-2016-文档分类:HAN Attention【层次Attention应用于“文档级别的长数据”(LSTM/GRU最多处理长度为300的文档);HAN可用于其他领域】
《原始论文:Hierarchical attention networks for document classification》 一、概述 HAN 模型的灵感来源于人在阅读 document 的时候,不同的词和句子对人理解 document 信息有不同的影响。因为,词和句子的重要性是和上下文息息相关的&am…...

studio构建错误Element uses-permission#android.permission.ACCESS_NETWORK_STATE at AndroidManifest.xml:38:
今天在项目构建的时候遇到了如下报错: Element uses-permission#android.permission.ACCESS_NETWORK_STATE at AndroidManifest.xml:38:5-79 dupli 没找到好的解决方案,仔细一看是清单文件的权限问题,于是检查,后发现权限声明重复,删除重复的留下一个即可...

论文阅读-2022.1.7-Don’t be Contradicted with Anything CI-ToD: Towards Benchmarking Consistency for Task
Title:Don’t be Contradicted with Anything! CI-ToD: Towards Benchmarking Consistency for Task-oriented Dialogue System 题目:不要与任何事物相矛盾!CI-ToD:面向任务的对话系统的基准一致性 Abstract Consistency Identi…...

linux系统发送ADB shell命令,Adb shell命令小结
写在前面:为了提高自己专业水平,小小的总结,希望自己可以不断的提高!Adb命令实践Android 调试桥Adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备…...

Android studio报错java.lang.ClassNotFoundException Didn't find class org.litepal.LitePalApplication
错误日志 11-21 08:39:23.856 3021-3021/com.example.administrator.androiddemo E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.example.administrator.androiddemo, PID: 3021java.lang.RuntimeException: Unable to instantiate application org.litepal.LitePalA…...
TNN将YOLOV5部署到移动端---pytorch转onnx转tnn全套流程
TNN将YOLOV5部署到移动端—pytorch转onnx转tnn全套流程 直接利用腾讯的TNN-master跑通android demo可以参考这篇博客 TNN入门笔记——从零跑通Android demo 有些电脑性能受限,可能不支持虚拟机技术,可以通过usb连接手机,直接部署到真机上测…...

[论文阅读笔记33]CASREL:基于标注与bert的实体与关系抽取
题目 A Novel Cascade Binary Tagging Framework for Relational Triple Extraction 一个关系三元组抽取的新型级联二元标记框架 Jilin University Shenzhen Zhuiyi Technology University of North Carolina at Chapel Hill 北卡罗来纳大学教堂山分校 摘要 解决问题&#x…...

有了独自开,我们离自己开发一套系统还会远吗
前言: 大家好,我是小威,今天给大家分享一个开发平台。能够独自开发一套系统,这想必对开发者是一个福音。下面就为大家介绍一下这个平台,来帮助我们开发自己的系统。 文章目录简单介绍优点优秀案例平台福利总结简单介绍…...
《TCP/IP详解 卷1》 笔记: TCP的持续定时器
引言我们已经看到TCP通过让接收方指明希望从发送方接收的数据字节数(即窗口大小)来进行流量控制。如果窗口大小为0,这将阻止发送方发送数据,直到窗口变为非0为止。可以在这一节图20-3中看到这种情况。当发送方接收到报文段9时&…...
小程序 request:fail ssl hand shake error【可能已解决】
不说废话 前景描述:在web开发工具玩得好好的,上传代码在真机上就直接蹦了。请求报错:request:fail ssl hand shake error查了下网上资料 大致要求: 1.通过备案审核(简单来说就是你的网站得打得开) 2.域名得…...

解决flutter调试安卓时出现的could not find lint-gradle-api.jar(com/android.tools.lint:lint-gradle-api:26.1.2)
打开路径如下: flutter的目录下找到flutter.gradle(不是app目录下的build.gradle),然后添加 重新编译,即可解决问题....

色温相关
光源的色温是以光源发光时所显现的颜色与一个绝对黑体被高温燃烧时所显现的颜色相一致时这个黑体被燃烧温度来定义的,它的单位是绝对温度Kelvin『K』,K值越高,显现的颜色就愈趋向于白蓝色;K值越低,显现的颜色就愈趋向于黄红色。我…...

什么是色温?
色温: 色温是光源色彩的一个标志,不同的颜色对应不同的色温。 定义:把标准黑体(自身不发光且熔点很高的物体)加热,温度升高到一定程度时该黑体颜色开始从深红-浅红-橙红-白-蓝 逐渐改变,某光源与…...

学生护眼灯色温多少合适?精选色温舒适的学生护眼灯
学生的视力问题一直是困扰着家长们的,每个家长都希望给孩子提供好的学习环境和生活调节,在学习阅读的灯光对眼睛的伤害很大,现在家庭中都会考虑买个护眼台灯,而护眼台灯的色温多少最适合学生阅读呢?色温太高或太低对眼…...

第九届蓝桥杯省赛 C++ A组 - 付账问题
✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:蓝桥杯题解集合 📝原题地址:付账问题 📣专栏定位:为想考甲级PAT的小伙伴整理常考算法题解,祝大家…...

/LGC图形渲染/PXA300平台2D图形加速器性能测试与分析
PXA300平台2D图形加速器性能测试与分析 [日期:2009-3-10] 作者:来源: 引言 消费类电子产品的快速发展使得人们对嵌入式多媒体系统的性能要求也随之提升。随着消费电子产品性能的不断增强,人们希望有更 多的嵌入式多媒体系统能够…...

【运维心得】正确的校正mysql-slave及mysqldump
实践出真知,有些细节,记录下。本文不涉及主备知识,有需右转: https://blog.csdn.net/qq_26834611/article/details/121385550mysql 正确的dump 命令:0. 检查当前主库所在位置ip addr 查看虚拟ip所在位置 1. 备机数据库dump备份:mysqldump -ur…...

网络协议和Netty(7):常用的网络抓包工具 Wireshark
目录 Wireshark的使用 1.下载 2.安装 数据包的捕获和基本用法 过滤器 捕获过滤器 捕获过滤器的 BPF 语法 显示过滤器 比较操作符和逻辑操作符 预定义过滤器 前言:前面三次握手和四次挥手用的抓包工具就是Wireshark,本节主要介绍其简单的使用&…...

树莓派上使用网络抓包工具Wireshark on your Raspberry Pi 4B
0、序 Wireshark is the world’s foremost and widely-used network protocol analyzer. Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinP…...
Charles网络抓包工具使用教程
1. 前言: Charles是一款抓包修改工具,相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!作为程序员, 这个工具的使用还是必…...

网络抓包工具——【wireshark】使用入门教程
一、软件介绍 二、抓包示例 三、界面讲解 1、 Display Filter(显示过滤器) 2、Packet List Pane(数据包列表) 3、Packet Details Pane(数据包详细信息) 四、过滤器设置 1、抓包过滤器 2、显示过滤器 五、抓包过滤器规则 1)抓包过滤器语法与实例 1、协议…...

常用网络抓包工具推荐
因为发现好多人想抓包,但是不知道有哪些工具,今天我给大家推荐几款抓包工具,希望对大家有所帮助。 网络抓包工具的用途 网络抓包工具的主要功能是将网络执行的过程,详细的记录下来。如果你是一个程序员,肯定对网络抓…...

异常:Error和Exception
异常机制(Exception) 什么是异常 实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,…...

2023年政府飞地经济研究报告
飞地概述 飞地是指一个国家或地区的领土内,被另一个国家或地区所包围的、不与其领土相连的一块独立区域。这种情况通常是因为历史、政治、地理等原因而形成的。 飞地通常存在于两个国家或地区之间,其中一个国家或地区的领土将另一个国家或地区的领土分…...

【Python+selenium】自动化生成测试报告
批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。 unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner 一、入HTMLTes…...

小皮Windows web面板漏洞详解
漏洞简介 PhpStudy国内12年老牌公益软件,集安全、高效、功能与一体,已获得全球用户认可安装,运维也高效。 支持一键LAMP、LNMP、集群、监控、网站、数据库、FTP、软件中心、伪静态、云备份、SSL、多版本共存、Nginx反向代理、服务器防火墙、…...

MySQL OCP888题解069-CHECK TABLE
文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3.1、知识点1:CHECK TABLE语句4、总结1、原题 1.1、英文原题 1.2、答案 B、E 2、题目解析 2.1、题干解析 本题主要考察CHECK TABLE的作用和注意事项。 2.2、选项解析 C…...

【C++进阶】异常
文章目录C语言传统处理异常的方式C异常概念异常的用法异常的抛出和捕获异常的重新抛出异常安全异常规范自定义异常体系标准库异常体系异常的优缺点C语言传统处理异常的方式 传统的错误处理机制: 终止程序,如assert,缺陷:用户难以…...

【Python入门第四十天】Python丨NumPy数组创建
创建 NumPy ndarray 对象 NumPy 用于处理数组,NumPy 中的数组对象称为 ndarray。 我们可以使用 array() 函数创建一个 NumPy ndarray 对象。 实例 import numpy as np arr np.array([1, 2, 3, 4, 5])print(arr)print(type(arr))运行实例 type(): 这个内置的 Py…...

【第十一届“泰迪杯”数据挖掘挑战赛】B题产品订单的数据分析与需求预测“解题思路“”以及“代码分享”
【第十一届泰迪杯B题产品订单的数据分析与需求预测产品订单的数据分析与需求预测 】第一大问代码分享(后续更新LSTMinformer多元预测多变量模型) PS: 代码全写有注释,通俗易懂,包看懂!!!&…...

sensor HDR
目录 手机拍照HDR:先拍出来图片再融合 实时预览 preview HDR的实现: 4-Cell-3-Exposure HDR sensor DOL-HDR 输出三张不同时间的图像,融合成一帧 : 以下来自Sensor HDR模式简介|极客笔记 (deepinout.com) 手机拍照HDRÿ…...

Redis之底层数据结构
一 Redis数据结构 Redis底层数据结构有三层意思: 从Redis本身数据存储的结构层面来看,Redis数据结构是一个HashMap。从使用者角度来看,Redis的数据结构是String,List,Hash,Set,Sorted Set。从…...

Java实现输入一个整数,计算并输出它的阶乘(20以下)
目录 一、前言 二、代码部分 1.输入一个整数,计算并输出它的阶乘的代码 三、程序运行结果(控制台输出) 四、设计到的有关知识 一、前言 1.本代码是我在上学时写的,有一些地方没能完美实现,请包涵也请多赐教&…...

mysql暂时禁用触发器
在 MySQL 中,你可以使用以下语句来暂时禁用触发器: SET OLD_SQL_MODESQL_MODE, SQL_MODETRADITIONAL; SET GLOBAL event_scheduler OFF; SET GLOBAL log_bin_trust_function_creators OFF; SET DISABLE_TRIGGERS1; 这些语句将禁用触发器、事件调度程序…...

水溶性荧光生物素PEG:Alexa fluor 647 PEG Biotin,AF647 PEG Biotin,Alexa荧光647标记生物素
文章关键词:AF染料试剂,PE-Biotin衍生物,Alexa-fluor 647,Alexa Fluor 染料,Alexa荧光647标记 中文名称:Alexa fluor 647-PEG-生物素,Alexa-fluor 647-PEG-生物素 英文名称:Alexa fl…...

Java——redis通过改写部分源码实现动态db-操作数据库的时候可以指定db操作
Java——redis通过改写部分源码实现动态db-操作数据库的时候可以指定db操作起因data-redis-gps(1)改写的源码类redis连接配置 - RedisConnectionConfiguration.javaLettuce客户端配置 - LettuceConnectionConfigure.java(2)衍生的…...

基于Java+Springboot+vue的网上商城购物系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】
博主介绍:专注于Java技术领域和毕业项目实战 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例(200套) 目录 一、前言介绍 1.…...

NVIDIA GTC 2023大会笔记+思考
思考 1 生成式AI大模型正在解决AI模型训练需要大量标注数据的问题(如Isaac Sim生成机器人仿真数据集,Drive Slim生成道路场景合成数据集) 2 依托类似Omniverse平台实现数字孪生等概念的工业生产流程模式,将因为节省大量现实调试成…...

《计算机网络原理》第一章 计算机网络概述
1.1 计算机网络的定义 定义:以能够相互共享资源的方式互联起来的自治计算机系统的集合主要特征: 资源共享分布在不同地理位置的“自治系统”遵循一定的规则—“协议 ” 1.2 计算机网络的发展历程 1.2.1 以单计算机为中心的联机系统 以单处理机为中心…...

基于springboot+mybatis-plus+mysql+vue实现物业管理系统
基于springbootmybatis-plusmysqlvue实现物业管理系统一、系统介绍1、系统主要功能:2.涉及技术框架:3.本项目所用环境:二、功能展示三、其它系统四、获取源码一、系统介绍 1、系统主要功能: 业主:基本信息、物业收费…...

ANR系列(一)——ANR源码拆解之Service的触发
前言 关于Service的ANR场景还是比较少见的,它的ANR设计原理也是比较简单,在很多监控的方案中都可以看得到 ANR触发场景 通过查阅Android官方文档,我们知道出现以下任何情况,系统都会针对我们的应用触发ANR: Servic…...

TitanIDE:云原生开发到底强在哪里?
原文作者:行云创新技术总监 邓冰寒 引言 是一种新的软件开发方法,旨在构建更可靠、高效、弹性、安全和可扩展的应用程序。与传统的应用程序开发方式不同,云原生是将开发环境完全搬到云端,构建一站式的云原生开发环境。云原生的开…...

基于antdv有可键入搜索的选择器
显示效果 传参效果 使用说明 本组件基于ant design Vue 和 Vue开发(JeecgBoot Vue2.0),带有搜索和键入 组件功能 支持动态传入请求路径动态设置请求方法动态设置是否模糊查询动态将请求方法进行带过来支持键入搜索,根据输入内容…...

GameFramework 框架详解之(十五)Setting配置存档
一.前言 在GameFramework中,我们可以使用Setting模块来管理游戏中的一些配置设置,通俗的来讲就是存档功能。Unity引擎给我们提供的PlayerPrefs工具其实作用是一样的,都是用来存储一些游戏配置的。 二.SettingComponent 类似PlayerPrefs的功能,提供基本数据类型配置的&qu…...

【MySQL】联合查询
目录 1、前言 2、联合查询 3、内连接和外连接 4、案例演示 4.1 查询篮球哥每科的成绩 4.2 查询所有同学的总成绩及邮箱 5、自连接 5.1 显示所有计算机原理成绩比java成绩高的同学 6、子查询 6.1 查询出篮球哥的同班同学 6.2 多行子查询 7、合并查询 1、前言 在实际…...

基于springboot+vue网上在线论坛交流网站
在生活上,他们不必像以前一样,想要在闲暇之余与好友或者是拥有同样兴趣的人交流,还得约时间地点一起聊天讨论,而仅仅需要用身边的电子产品打开论坛网站来进行沟通交流,就可以使自己能够在生活的压力下放松自己的心情&a…...

运用serv-u 、快解析搭建serveru ftp个人服务器方法教程
FTP的意思就是文件传输协议,用来管理TCP/IP网络上大型文件的快速传输。FTP服务器就是局域网信息资源的存储中心,主要是用来进行文件共享和传输。为了便于数据信息的共享和沟通,很多企业甚至个人都想搭建自己的ftp服务器,今天&…...

pytorch项目实战之实时人脸属性检测系统
简介 本项目采用CelebA人脸属性数据集训练人脸属性分类模型,使用mediapipe进行人脸检测,使用onnxruntime进行模型的推理,最终在intel的奔腾cpu上实现30-100帧完整的实时人脸属性识别系统。 ps:本来是打算写成付费专栏的,毕竟这是…...

vue过滤器filter
过滤器实质: 不改变原始数据,只是对数据进行加工处理后返回过滤后的数据再进行调用处理 用在两个地方: <!-- 在双花括号中-->{{ message | capitalize }}//capitalize为过滤器名字 <!-- 在 v-bind 中 --><div v-bind:id&qu…...

自主AI能力加速企业智能化转型 | 爱分析报告
报告编委 黄勇 爱分析合伙人&首席分析师 孟晨静 爱分析分析师 外部专家(按姓氏拼音排序) 杜晨阳 力维智联 五维实验室主任 王哲 九章云极DataCanvas 雅图BU总经理 特别鸣谢(按拼音排序) 目录 1. 报告综述 2. 金融…...

整理alacritty使用笔记
github: https://github.com/alacritty/alacritty features: https://github.com/alacritty/alacritty/blob/master/docs/features.md features(中文): https://gitcode.gitcode.host/docs-cn/alacritty-docs-cn/docs/…...

iOS多线程——GCD学习总结
文章目录多线程编程进程线程线程与进程的关系CPU核GCD简介为什么我们要使用GCD任务同步执行(sync):异步执行(async):队列(Dispatch Queue)串行队列(Serial Dispatch Queu…...

服务器安装 scenic plus python包
SCENIC 用来联合分析单细胞转录组和单细胞染色质可及性数据,软件官网:https://github.com/aertslab/scenicplus官方给出的代码很简单,就是 git clone 然后 pip install,但我实际安装时发生各种各样报错,总结了一下&…...

3、DRF实战总结:基于类的视图APIView, GenericAPIView和GenericViewSet视图集(附源码)
前面介绍了什么是符合RESTful规范的API接口,以及使用了基于函数的视图(FBV)编写了对文章进行增删查改的API。在本篇文章将使用基于类的视图(Class-based View, CBV)重写之前的接口。 参考: 1、Django开发总结:Django MVT与MVC设计模式&…...

【Unity 风格化】水墨风渲染01:从总结实现方法开始
写在前面 一直比较迷风格化的东西,之前写PBR其实也是为了后面尝试PBRNRP做铺垫,毕竟了解写实向才能进一步学习奇奇怪怪的NPR方式!话不多说,从水墨渲染开始,正式进入风格化的世界!! 无论是什么场…...

【C++进阶】C++11(终)包装器、线程库
文章目录包装器使用方法bind线程线程函数参数原子性操作库(atomic)死锁问题法一:在异常处解锁法二:lock_guard法三:unique_lock两个线程交替打印奇偶数包装器 看下面代码: 通过运行结果我们可以看到static实例化出了三份&#…...

智能制造装备主要技术
请点击↑关注、收藏,本博客免费为你获取精彩知识分享!有惊喜哟!!INTRODUCTION制造业是国民经济和国防建设的重要基础,是立国之本、兴国之路、强国之基。智能制造是当前制造技术的核心发展方向。智能制造装备是智能制造…...

日语能力考常考形容词,柯桥考级培训
日语能力考常考形容词大全(汉字しい类)汉字しい类的形容词恥ずかしい(はずかしい):害羞,害臊;不好意思 例:こんな格好で人前に出るのは恥ずかしい。大人しい(おとなしい&…...

Qt 学习笔记 10.QTableWidget
1.如何彻底删除 QTableWidget 中的表项 在 Qt 中,可以使用 QTableWidget::removeRow() 函数彻底删除在 QTableWidget 中的行,从而删除该行中的所有表项。 QTableWidget::removeRow() 函数接受一个整数类型的行号作为参数,表示需要删除的行号。…...

【python】【protobuf】逆向还原protobuf结构
文章目录一、前言二、示例三、python demo一、前言 在很多场景,都有一个需求: 得到了一个编码后的protobuf数据(比如竞品调研的的数据包),需要逆向还原其proto结构文件。 有3种方案去做这件事情: 从编码入…...

基于CZT的辐射探测器市场调研报告-主要企业、市场规模、份额及发展趋势
基于CZT的辐射探测器市场报告主要研究:市场规模: 产能、产量、销售、产值、价格、成本、利润等行业分析:原材料、市场应用、产品种类、市场需求、市场供给,下游市场分析、供应链分析等竞争分析:主要企业情况、市场份额…...

lvgl小部件-基础对象学习篇(二)
lvgl小部件-基础对象学习篇(二) 学习材料/工具 QT Creator 5.12.3 lvgl 源代码 极客笔记 学习过程/内容 LVGL 基础对象-坐标 尺寸 位置 对齐 父子关系 屏幕 层次 事件处理 部件 状态 风格 属性 保护 组 扩展点击区域 事件 按键 范例 具有自定义样式的基础…...

放射图表征学习(Radiograph Representation Learning)部分论文汇总
本文不保证时效性覆盖性 ICLR [link] [code] [MRM] [23] Advancing Radiograph Representation Learning with Masked Record Modeling MICCAI [link] [code] [M3AE] [22] Multi-modal Masked Autoencoders for Medical Vision-and-Language Pre-training [link] [code] [LM…...

【测试开发实战】Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台
1. 为什么要搭建性能监控平台? 1.1 需求背景 在用 Jmeter 获取性能测试结果的时候, Jmeter 本身带有聚合报告如下图所示: 这个报告有几个很明显的缺点: 只能自己看,无法实时共享;报告信息的展示比较简陋…...

【力扣专题】3.哈希表
3.哈希表理论知识数组代替哈希表setmap理论知识 一般哈希表都是用来快速判断一个元素是否出现集合里,要枚举的话时间复杂度是O(n),但如果使用哈希表的话, 只需要O(1)就可以做到。 ● 哈希碰撞:映射到了同一个索引 ● 拉链法&…...

【MySQL】MySQL的介绍MySQL数据库及MySQL表的基本操作
文章目录数据库的介绍什么是数据库数据库分类MySQL的介绍数据库的基本操作数据库的操作创建数据库查看所有数据库选中指定的数据库删除数据库常用数据类型数值类型字符串类型日期类型表的操作创建表查看指定数据库下的所有表查看指定表的结构删除表小练习数据库的介绍 什么是数…...

JVM中引用计数法与可达性分析
目录 概要 如何判断对象已死? 引用计数算法 优点 缺点 举例说明 可达性分析 图例说明 GC Roots的对象包括以下几种 可达性分析回收过程 四大引用 回收方法区 方法区的垃圾收集主要回收两部分内容: 1. 废弃的常量 2. 不再使用的类型。 JVM是…...

【面试】如何定位线上问题?
这个面试题我在两年社招的时候遇到过,前几天面试也遇到了。我觉得我每一次都答得中规中矩,今天来梳理复盘下,下次又被问到的时候希望可以答得更好。 下一次我应该会按照这个思路去答: 1、如果线上出现了问题,我们更多…...

Android 通用抓包方式
前言 抓包思路有两种 中间人hook android libssl.so 获取ssl key log 中间人的优势是简单方便,实时。hook的方式优势是原汁原味(比如可以看到两端握手的过程)。具体选哪一种,根据实际需求决定 中间人 可以利用的工具有pcap r…...

netstat命令参数
Usage: netstat [-ral] [-tuwx] [-en] Display networking information -r Routing table -----------------------查看路由表 -a All sockets 所有套接字状态 -l Listening sockets …...

Redis缓存过期策略
Redis 内存查看 Redis默认能用多少内存? 使用config get maxmemory命令查看 在64位操作系统默认可以飙到你的内存大小,0代表你的物理内存在32位操作系统下,默认3G内存 通过config set maxmemory设置内存值内存不够报OOM异常 淘汰策略 立即删…...

<C++> 三、内存管理
1.C/C内存分布 我们先来看下面的一段代码和相关问题 int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] {1, 2, 3, 4};char char2[] "abcd";const char *pChar3 "abcd";int *ptr1…...

一起来学5G终端射频标准(TAE for UL-MIMO)
01—TAE的定义我们先来了解一下TAE测试标准的发展演变。在4G LTE的3GPP 36.101-1的技术要求规范中,就给出了对4G终端UL MIMO以及V2X UE的TAE的定义和最小要求,但在36.521-1的4G终端一致性测试规范中并没有对应的章节规定TAE的一致性测试。5G中有所变化&a…...

nginx-日志配置-错误界面配置-流量控制-7
nginx日志配置 nginx日志介绍 nginx 有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志, 需要日志模块 ngx_http_log_module 的支持,日志格式通过 log_format 命令来定义,日志对于统计和排错是非常有利的,下面总结了 n…...

dp-打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非…...

2023年杭州/广州/深圳DAMA-CDGA/CDGP数据治理认证线上班
DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业…...

华为OD机试用java实现 -【删除重复数字后的最大数字】(2023-Q1 新题)
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:删除重复数字后的最大数字 题…...

vue安装
要安装Vue,您需要先安装Node.js。以下是在Windows操作系统上安装Vue的步骤: 下载并安装最新版本的Node.js,可以从Node.js官方网站下载:Download | Node.js打开命令提示符或终端窗口,并输入以下命令来安装Vue CLI&…...

《计算机网络原理》第二章 网络体系结构
2.1 概述 2.2 网络分层 分层优点 各层独立每一层不需要知道下一层是如何实现的,只需要知道层间的接口和需要提供的服务。灵活性好当任意层发生变化时,只要接口不变,上下层均不受影响。结构上分开各层可采用最适合的技术。易于实现和维护促…...

就在明天 用友企业数智化财务峰会落地广州,聚焦实现业财合一新价值
3月28日,以「智能会计 价值财务」为主题的“2023企业数智化财务创新峰会”即将登陆广州。一同见证“智能会计”新时代下,用友 “价值财务”的新主张,同时在全球化的今天,助力大湾区企业扬帆出海迈向高质量发展! 本次峰…...

Python基础知识汇总(创建字典)
目录 字典的创建 常规创建字典 创建空字典 通过映射函数创建字典...

五个免费可用的 API 解锁快递物流应用更多的可能性
随着电商市场的迅速发展,越来越多的企业开始注重快递物流的重要性。为了提供更好的物流服务,许多企业都开始使用物流 API 来提高其物流操作的效率和可靠性。 通常我们在拿到一个快递单号想知道是属于什么快递公司的时候,我们会网上搜索&…...