最新文章在 JavaScript 中随机打乱数组的顺序 Fisher-Yate洗牌算法
Fisher-Yate洗牌算法1234567function shuffleArray(array) { for (let i = array.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [array[i], array[j]] = [array[j], array[i]]; } return array;}
这个 shuffleArray 函数接受一个数组作为参数,并返回打乱顺序后的新数组。它使用了 Fisher-Yates 洗牌算法的思想:
从最后一个元素开始,向前遍历数组。
对于每个元素,生成一个随机索引 j,范围是从 0 到当前元素的索引 i。
将当前元素与随机索引 j 处的元素交换位置,通过解构赋值实现。
继续向前遍历数组,直到遍历完所有元素。
返回打乱顺序后的数组。
使用示例:1234const array = [1, 2, 3, 4, 5];const shuffledArr ...
Flutter问题记录 - Unknown flutter tag
升级flutter SDK时遇到的报错提示12Unknown flutter tag. Abandoning upgrade to avoid destroying local changes. It is recommended to use git directly if notworking on an official channel.
执行flutter upgrade --force命令强制升级
使用vitepress搭建的图鸟Vue2文档
用vitepress搭建的图鸟Vue2文档演示Github仓库
flutter强制刷新组件
前言今天用了一个flutter的pdf插件,但是在更新pdf的时候,发现没有刷新,查看源码发现是用到了安卓原生,于是就想到了强制刷新组件。
使用Key强制刷新组件使用 Key 属性:为 PDFView 组件提供一个唯一的 Key 属性。这样,当您需要更新数据时,可以通过更改 Key 属性来触发 PDFView 组件的重建。
123456789101112131415161718192021class _PDFViewState extends State<PDFView> { Key _pdfViewKey = UniqueKey(); @override Widget build(BuildContext context) { return PDFView( key: _pdfViewKey, // 设置唯一的 Key 属性 pdfData: widget.pdfData, // 其他属性和回调函数... ); } void updatePDFData(Uint8List newData) ...
2023.3.0版JRebel插件激活
2023.3.0版JRebel插件激活
删掉用户名下的.jrebel文件夹,否则之前激活失败会导致无法激活
下载最新版JRebel插件
打开IDEA,点击File->Settings->Plugins->Install Plugin from Disk…,选择下载的JRebel插件,点击OK
重启IDEA,点击settings->JRebel &Xrebel ->,选择激活
下载代理并双击打开 找对应版本下载 https://github.com/ilanyu/ReverseProxy/releases/tag/v1.4
输入激活地址http://localhost:8888/{GUID},邮箱随便都可以,勾选同意,点击提交
guid在线生成地址 www.guidgen.com/
把JRebel设置为离线工作模式,点一下work offline。
flutter OutlinedButton按钮分析
资料参考Migrating to the New Material Buttons and their Themes
OutlinedButton 类OutlinedButton 类是一个 Material Design 风格的 “Outlined Button”,它继承自 ButtonStyleButton 类,表示一个带有按钮样式的可点击组件。
OutlinedButton 类的构造函数如下:
12345678910111213const OutlinedButton({ super.key, required super.onPressed, super.onLongPress, super.onHover, super.onFocusChange, super.style, super.focusNode, super.autofocus = false, super.clipBehavior = Clip.none, super.statesController, required super.child,});
这个构造函数接受 ...
flutter蓝牙
引入pubspec.yaml1flutter_reactive_ble: ^5.0.3
Android需要将以下权限添加到 AndroidManifest.xml 文件中:
12345<uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation"/><uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30"/><uses-permission android:name="android.permissi ...
Flutter GetX和showModalBottomSheet使用
GetX 状态管理本文是以 Vue 开发经验为基础,对 GetX 状态管理的使用进行记录。
引入仓库地址
12345# 非空安全最后一个版本(flutter 2.0之前版本)get: ^3.26.0# 空安全版本 最新版本请查看 https://pub.flutter-io.cn/packages/getget: ^4.6.5
1import 'package:get/get.dart';
主入口配置在主入口配置后就相当于 Vue 的全局引入了,可以在任意地方使用。引入方式为将 MaterialApp 改成 GetMaterialApp
123456789101112void main() { runApp(MyApp());}class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return GetMaterialApp( home: CounterGetPage(), ); ...
flutter 读取bmp格式图片并转换16进制
总结2023 年 5 月 10 日 12:52:25 更新
这个方式获取的数据会附带 BMP 的头文件数据,如果不需要头文件的话处理方式看最后。
读取图片12345Future<Uint8List> loadAsset(String path) async { final byteData = await rootBundle.load(path); print(byteData.buffer.asUint8List()); return Uint8List.sublistView(byteData); }
转换 16 进制12345678910String bytesToHexString(Uint8List bytes) { final buffer = StringBuffer(); for (final b in bytes) { buffer.write(b.toRadixString(16).padLeft(2, '0')); print(b.t ...
Stable Diffusion零基础教程(教你两种方式私有部署AI绘画平台,无限生成)
2023年8月3日15:41:46 更新 目前colab免费版不支持部署了,只能本地部署。本地部署推荐观看b站秋叶的教程杂谈之前就分享了一些成果,很多朋友都在问如何部署,有没有教程,故今天专门制作一期教程 教大家如何部署 Stable Diffusion web UI本期教程免费分享,创作不易,希望我的分享可以帮助到你。
效果展示以下是我自己生成的一些效果
引用资源Civitai 目前比较出名的一个novel模型下载网站stable-diffusion-webui 一个基于 Gradio 库的 Stable Diffusion 浏览器界面huggingface 大型的人工智能社区colab Google的云端计算机,免费GPU资源
使用colab免费部署前置条件有谷歌账号。如果您没有Google帐户,请先注册一个Google账号。
打开我分享的启动脚本链接👉👉👉点我跳转
打开后是这样的页面
开始运行点击图中标记的运行按钮
点击仍然运行
我这里触发了Google的机器校验,继续验证即可
开始运行后 ...