• Go-家庭收支记账软件项目实现

    目录 项目开发流程说明 项目需求说明 项目的界面 项目代码实现 实现基本功能(先使用面向过程,后面改成面向对象) 功能 1:先完成可以显示主菜单,并且可以退出 功能 2:完成可以显示明细和登记收入的功能 功能 3:完成了登记支出的功能 项目代码实现改进 对项目的扩展功能的练习 项目开发流程说明 项目需求说明 模拟实现基于文本界面的<家庭记账软件>该软件能够记录家庭的收入.支出,并能够打印收支明细表 项目的界面 项目代码实现 实现基本功能(先使用面向过程,后面改成面向对象) 功能 1:先完成可以

    2023-01-18
  • 详解如何用js实现一个网页版节拍器

    目录 引言 1. 需求分析 2. 素材准备 3. 开发实现 3.1 框架选型 3.2 模块设计 3.3 数据结构设计 3.4 播放逻辑 3.5 音频控制 3.6 动效 3.7 大屏展示 3.8 新增人声发音 4. 部署 5. 后续工作 5.1 目前存在的问题 ios声音 5.2 TODO 切换不同音效 引言 平时练尤克里里经常用到节拍器,突发奇想自己用js开发一个. 最后实现的效果如下:ahao430.github.io/metronome/. 代码见github仓库:github.com/ah

    2023-01-18
  • python 函数、变量中单下划线和双下划线的区别详解

    目录 一._func 单下划线开头 --口头私有变量 1.1.在模块中使用单下划线开头 1.2.在类中使用单下划线开头 二.__func 双下划线开头的函数 --私有变量 2.1.在模块中使用双下划线开头 2.2.在类中使用双下划线开头 三.前后都有双下划线 --特殊变量 一._func 单下划线开头 --口头私有变量 1.1.在模块中使用单下划线开头 在Python中,通过单下划线_来实现模块级别的私有化,变量除外.一般约定以单下划线开头的函数为模块私有的,也就是说from moduleNam

    2023-01-18
  • Vue项目中使用setTimeout存在的潜在问题及解决

    目录 使用setTimeout存在的潜在问题 上代码 总结 使用setTimeout存在的潜在问题 在开发项目中遇到这样的序曲,点击按钮弹框,每次进入的时候都需要默认选中Android, 这个时候就遇到了一个小坑,当用户点击弹框后,选择iOS,再点击cancel或者OK,楼主在开发的时候,点击cancel按钮,执行下面代码 this.showDialog = false; // 关闭弹框 this.createForm.platform = "Android"; // 重置下拉框的默认

    2023-01-18
  • Vue实现DOM元素拖放互换位置示例

    目录 一.拖放和释放 二.可拖拽属性 三.DataTransfer 3.1 属性 3.2 方法 四.DataTransferItem 4.1 属性 4.2 方法 五.DataTransferItemList 六.Event事件 七.实例 7.1 html代码 7.2 JS代码 一.拖放和释放 HTML 拖放接口使得 web 应用能够在网页中拖放文件.这里将介绍了 web 应用如何接受从底层平台的文件管理器拖动DOM的操作. 拖放的主要步骤是为 drop 事件定义一个释放区(释放文件的目标元素)

    2023-01-18
  • Docker部署Nginx并修改配置文件的两种方式

    目录 一.创建容器 二.修改配置文件 1. 进入容器内部修改配置文件 2.容器加载外部配置文件 总结 一.创建容器 # 搜索Nginx镜像 docker search nginx # 拉取Nginx镜像 docker pull nginx # 查看镜像名为nginx的镜像 docker images nginx # 运行镜像,生成容器 # 命令解读: # -d:以后台守护线程运行 # --name:容器命名 # -p 80:80 : 映射端口,容器内部80端口映射到服务器80端口 # nginx

    2023-01-18
  • JavaScript 键盘事件的处理及属性详解

    目录 引言 处理键盘事件 键盘事件属性 引言 JavaScript 中的事件,当用户或浏览器尝试操作页面时,就会发生事件来处理 JavaScript 与HTML的交互.正如大家所知,JavaScript 与HTML一起工作,因此,页面加载.单击按钮.最小化窗口.单击鼠标.敲打键盘等发生的一切都是事件.就像在单击按钮时向用户显示任何消息一样,这是通过事件发生的. 所有HTML元素(如按钮.文本框.图像)都可以包含可以使用 JavaScript 代码触发的事件.所有这些事件都是DOM的一部分(文档对

    2023-01-18
  • SpringBoot @PropertySource与@ImportResource有什么区别

    目录 前言 @PropertySource @ImportResource 小结 前言 在SpringBoot中,对于JavaBean的属性一般都绑定在配置文件中,比如application.properties/application.yml/application.yaml,这三个配置文件前面的优先级高于后面的,即对于同名属性,前面的配置会覆盖后面的配置文件. 当我们自己创建类,也想放到容器中,可以单独建立文件,可以通过@PropertySource与@ImportResource这两个注解

    2023-01-18
  • vuex的几个属性及其使用传参方式

    目录 vuex概念 1.1.组件之间共享数据的方式 1.2.Vuex是什么 1.3.使用Vuex同意管理状态的好处 vuex的基本使用 vuex的核心概念 vuex概念 1.1.组件之间共享数据的方式 父 向 子 传值:v-bind属性绑值 子 向 父 传值:v-on事件绑定 兄弟组件之间共享数据:EventBus $on 接收数据的那个组件 $emit 发送数据的那个组件 1.2.Vuex是什么 Vuex是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间数据的共享. 1.3.使用

    2023-01-18
  • Python实现.gif图片拆分为.png图片的简单示例

    Python实现.gif图片拆分为.png图片 实现效果展示: 未转化前的gif图片 经转化后: ---------------------------------------------------------------------------------------图一--------------------------------------------------------------------------------------- ------------------------

    2023-01-18
  • Android之来电秀实战示例

    目录 正文 第一:监听来电状态 第二:通过手机状态来做不同的处理 第三:来电秀界面的实现了 第四:开机自动启动 第五:注册这些四大组件和申请用到的一些权限 正文 简单的说下实现来电秀的大概原理流程:首先通过监听来电状态,通过拦截来电然后在窗口弹出一层系统级别的弹窗,这层弹窗即是来电秀. 先来两张效果图: 下面来说下实现,因为商用的原因,不能直接贴代码,所以在这里,会贴一些比较核心的代码,大概分为五个步骤: 第一:监听来电状态 /** * 电话状态监听(来电或去电) * * @author Jen

    2023-01-17
  • Python NumPy 数组索引的示例详解

    目录 前言 1.访问数组元素 2.访问 2-D Arrays(数组) 3.访问 3-D Arrays(数组) 4.负索引 前言 NumPy(Numerical Python的缩写)是一个开源的Python科学计算库.使用NumPy,就可以很自然地使用数组和矩阵.NumPy包含很多实用的数学函数,涵盖线性代数运算.傅里叶变换和随机数生成等功能.本文主要介绍Python NumPy 数组索引及访问数组元素. 1.访问数组元素 数组索引与访问数组元素相同. 您可以通过引用其索引号来访问数组元素. Nu

    2023-01-17
  • Android蓝牙服务查找附近设备分析探索

    目录 一.APP端调用 1.注册广播监听查找结果 2.开始查找附近设备 3.异常处理 二.查找设备源码分析 1.BluetoothAdapter.startDiscovery() 2.AdapterService.startDiscovery() 3.startDiscoveryNative() 4.start_discovery() 扫描入口 5.btif_dm_start_discovery() 配置参数 6.BTA_DmSearch() 搜索对等蓝牙设备 7.bta_sys_sendmsg

    2023-01-17
  • MySQL三大日志(binlog、redo log和undo log)图文详解

    目录 1.redo log redo log概述 刷盘时机 innodb_flush_log_at_trx_commit=0 innodb_flush_log_at_trx_commit=1 innodb_flush_log_at_trx_commit=2 日志文件组 2.binlog binlog 概述 记录格式 写入机制 刷盘时机 3.两阶段提交 4.undo log 5.总结 总结 1.redo log redo log概述 redo log(重做日志)是InnoDB存储引擎独有的,它让M

    2023-01-17
  • Numpy 数组索引的实现

    目录 一.整数索引 二.切片索引 2.1.一维数组切片 三.整数数组索引 3.1. 一维数组的整数数组索引 3.2.多维数组的整数数组索引 四.布尔索引 五.花式索引 数组索引是指使用方括号([])来索引数组值,numpy提供了比常规的python序列更多的索引工具.除了按整数和切片索引之外,数组可以由整数数组索引.布尔索引及花式索引.下面逐一学习. 一.整数索引 这种机制有助于基于 N 维索引来获取数组中任意元素. 每个整数数组表示该维度的下标值. 当索引的元素个数就是目标ndarray的维度

    2023-01-17
  • Vue如何调用接口请求头增加参数

    目录 Vue调用接口请求头增加参数 Vue取消接口请求 接口js文件 页面中引用 总结 Vue调用接口请求头增加参数 import axios from 'axios' import qs from 'qs' let api_secret = '935bda53552e49cd56fc' // 基础配置 if (process.env.NODE_ENV === 'production') { // axios.defaults.baseURL = 'https://' //线上版本域名 // a

    2023-01-17
  • git push origin HEAD:refs/for/master 的意思分析

    目录 git push origin HEAD:refs/for/master 的意思 PS:git 提交代码常用命令 一.master分支代码提交过程 二.master分支与2.08分支切换方法 三.2.08分支代码提交过程 git push origin HEAD:refs/for/master 的意思 1.git push <远程主机名> <本地分支名> : <远程分支名> 例如git push origin master:refs/for/master是将本地的

    2023-01-17
  • redis中hash数据结构及说明

    目录 hash的数据结构 ziplist底层实现 字典 底层实现 扩容 缩容 总结 hash的数据结构 hash底层数据结构的实现包括两种:ziplist和字典当 保存的所有键值对字符串长度小于 64 字节并且键值对数量小于 512 时使用ziplist ,否则使用字典的方式 ziplist底层实现 ziplist是为了提高存储效率而设计的一种特殊编码的双向链表.它可以存储字符串或者整数,存储整数时是采用整数的二进制而不是字符串形式存储. 他能在O(1)的时间复杂度下完成list两端的push和

    2023-01-17
  • RocketMq深入分析讲解两种削峰方式

    目录 何时需要削峰 通过消息队列的削峰方法有两种 消费延时控流 总结 何时需要削峰 当上游调用下游服务速率高于下游服务接口QPS时,那么如果不对调用速率进行控制,那么会发生很多失败请求 通过消息队列的削峰方法有两种 控制消费者消费速率和生产者投放延时消息,本质都是控制消费速度 通过消费者参数控制消费速度 先分析那些参数对控制消费速度有作用 1.PullInterval: 设置消费端,拉取mq消息的间隔时间. 注意:该时间算起时间是rocketMq消费者从broker消息后算起.经过PullInt

    2023-01-17
  • Python中threading.Timer()定时器实现定时任务

    目录 1.单线程执行 2.多线程执行 timer最基本理解就是定时器,可以启动多个定时任务,这些定时器任务是异步执行,所以不存在等待顺序执行问题. Timer方法 说明 Timer(interval, function, args=None, kwargs=None) 创建定时器 cancel() 取消定时器 start() 使用线程方式执行 join(self, timeout=None) 等待线程执行结束 1.单线程执行 示例代码: from datetime import datetime

    2023-01-17