avatar
文章
121
标签
128
分类
34
Home
Archives
Categories
Tags
About
LsWorld
Home
Archives
Categories
Tags
About

LsWorld

C语言指针
发表于2023-08-20|C
指针类型的意义: 1.指针类型决定了指针解引用操作符能访问几个字节: char* p能访问1个字节, int* p 能访问4个字节 2.指针类型决定了指针+1,-1,加的或者减的时几个字节:char* p;p+1,跳过一个字节。int* p; p+1,跳过四个字节。 int a = 0x11223344; char* cp = (char*)&a; int* ip = &a; printf("%p\n",*cp);//00 00 00 44 printf("%p\n",*ip);//11 22 33 44 字符指针在指针类型中将char*称为字符指针。 char a[] = "abcdef"; char* p = a; printf("%s\n",a); //abcdef printf("%s\n",p); //abcdef const char* p1 = "abcdef"; const char* p2 = "abcdef"; if (p1==p2) { printf("相同");//会进行打印,说明p1和p2指向同一块内存空间 &...
数据存储相关
发表于2023-08-20|C
整型内存存储的数据形式计算机中的有符号数(整形,**即首位为符号位,0表示”正”,1表示”负”**)有三种表示方式,即原码,反码和补码。(无符号数的原码反码补码和符号位为正时规则相同。) 当符号位为正时(首位为0)则原码反码补码相同。 当符号位为负时(首位为1)原码将值翻译成二进制形式。 反码原码的符号位不变,其他位依次取反。 补码在反码的基础上+1就可以得到补码。 int a = 4; //4个字节-32bit //转换成二进制 //原码:00000000 00000000 00000000 00000100 //反码:00000000 00000000 00000000 00000100 //补码:00000000 00000000 00000000 00000100 int a = -5; //转换成二进制 //原码:10000000 00000000 00000000 00000101 //反码:11111111 11111111 11111111 11111010 //补码:11111111 11111111 11111111 11111100 对于整形来说:内存...
如何对后端传来的数据进行JSON序列化
发表于2022-11-09|Flutter
引言在传统Web开发领域我们通过ajax请求接收到后端发来的数据时,浏览器都已经帮我们完成了json的序列化,而在Flutter显然是不支持直接显示后端接收到的请求的,如此我们就需要对请求接收到的数据进行序列化,转变成为我们能看懂的东西。这里我主要介绍JSON 和序列化数据 - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter中的三种序列化方式。 直接使用内联序列化JSON数据(这种方式很方便,但是在代码运行前你都无法知道你取的类型是否正确,导致代码很容易出错) 内联序列化JSON数据实现方法很简单,主要依靠Flutter内置的json.decode()函数来对接收到后端的数据进行解码。 先说结论,主要用的就是json.decode(value.toString());,就是将获取到的数据转为字符串后进行json解码。 //发送请求类 这里使用的是dio来进行发请求 就简易的实现发送get请求 import 'package:dio/dio.dart'; class Request{ // 配置实例 static fi...
typeorm使用distinct并有传入值时才进行where搜索
发表于2022-11-05|node.js
TypeOrm介绍typeorm是一个对象关系映射模式,主要就是为了解决面向对象与关系数据库存在的互不匹配的技术。当然使用typeorm可能有时候不如直接sql语法查询,但是使用orm框架可以更容易写出高内聚低耦合的代码来,主要就是为了减少重复代码的书写。 使用distinct与where配合搜索在一些场景中,typeorm所提供的Repository API并不能满足我们查询的需求,这时候就只有两种方案,一种是直接使用typeorm提供的query()方法直接使用sql语句来进行复杂查询,还有就是使用查询构造器Query Builder来进行查询。 当然,既然我们都用orm框架了,当然是要减少使用sql语句的场景的。 此时这就有个需求,当我们需要查询数据有多条,但我们只需要其中一条,并且他的where的值可能是不存在的,这种场景单纯使用find()是解决不了的,就需要使用Query Builder。 例子:就如这有个User表,结构为: CREATE TABLE `user` ( `id` int NOT NULL AUTO_INCREMENT, `name` varc...
nestjs的模块,控制器,提供者介绍
发表于2022-10-15|node.js
介绍 本文参考了nestjs官方文档 在使用了用nodejs搭建的koa和express框架后发现使用前端的语法也可以搭建一个不错的后端,而现在又逐渐趋势于用typescript来开发,就发现了nestjs可以很好的支持typescript并进行一个工程化的开发。 新建在开始之前,可以使用nest的脚手架来快速搭建一个nest项目。(确保Node.js(>=10.13.0,v13除外)) npm i -g @nestjs/cli nest new project-name #project-name为项目名,会在当前目录下新建一个nestjs项目 创建时会让你选择用什么作为包管理工具,这里默认使用npm。 等待完成后就可以进入到项目中使用npm run start来运行项目了。(也可以使用npm run start:dev来运行启动热更新。) 文件介绍项目创建后,自动在src生成了一下文件: app.controller.ts app.controller.spec.ts app.module.ts app.service.ts main.ts main...
Flutter实现rsa加密与解密
发表于2022-09-16|Flutter
前言在想使用rsa加密前,应该首先了解什么是rsa加密。rsa作为目前流行的非对称加密,所需要公钥和私钥两把钥匙才能解开传输的数据。所以要使用rsa加密算法,首先就得要设置公钥和私钥(私钥一般都是放在后端,私钥在前端极其不安全,前端的代码几乎都是透明的,这里演示就全在前端中演示)。 导包与获取钥匙在Flutter中使用加密算法,需先在pubspec.yaml文件中导如encrypt包(版本以flutter社区的最新版为准),修改文件后保存会自动导包。 然后去获取公钥和私钥(可以在网页上生成),并放在静态资源文件夹中。 公钥格式为:(-----BEGIN PUBLIC KEY-----和结尾的-----END PUBLIC KEY-----是必加的,中间内容为公钥,私钥同理) -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2/vF49zKHdP0EY1B9Zim 5t4X1GsnP1TEYgYMnWXQNLluWV53iInEJBmw/xf++Ohbgp7Wh...
Dart语言学习
发表于2022-09-06|flutter
最近想开发一个即时通讯的app,想要通过跨端平台来做一个app,众所周知,目前比较流行的跨端平台有electron(主要桌面开发)、uniapp(小程序方面应用多)、react native(和flutter在app占比差不多)和flutter。当时技术选型时,因为本人是对Vue为主要前端框架进行深入学习,所以开发app时候react native就没有纳入我的范围,uniapp又因为觉得做小程序比较多,在网上搜索uniapp对app的兼容不如react native和flutter,所以最后就决定选择学习flutter来作为主要开发工具。 本文主要介绍Dart的基本语法,Dart大部分都是为了flutter而服务,所以这里并不会对Dart进行过多的了解,相信要是有javascript或java语言等高级语言基础的话,可以很快的进行入门。 文章参考了Dart的官网。 前言Dart和Java一样是面向对象的语言,所以他们都有一个main方法,要是数据不是在函数体内声明,则默认为全局方法,不会像Javascript那种面向编程的语言一样,无论在什么环境修改变量都不会报错,在Da...
mysql常用语句总结
发表于2022-09-01|mysql
创建数据库CREATE DATABASE 数据库名; 删除数据库drop database 数据库名; 创建表#IF NOT 表示不存在就创建 CREATE TABLE IF NOT 表名 (column_name column_type); 例子: #AUTO_INCREMENT 表示自增 NOT NULL表示不为空 PRIMARY表示主键 CREATE TABLE IF NOT user( id int PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(20) NOT NULL ); 表创建时添加外键约束两个表之间需要相关的值的话就可以使用外键约束,并且设置外键的字段名所用的是主表的主键字段才行。 表创建时添加外键约束CONSTRAINT 外键名 FOREIGN KEY(从表的外键字段名) REFERENCES 主表名(主表的主键字段名) 例子: #主表 CREATE TABLE IF NOT user( id int PRIMARY KEY NOT NULL AUTO_INCREMENT, na...
JavaScript实现方法的重载
发表于2022-08-26|javascript
最近在使用node.js做后端时,想使用方法重载来实现一个函数可以接收不同的参数,但是javascript作为一个弱类型语言,无法实现方法的重载,就只能通过奇淫技巧来实现。 目前发现的方法有: 使用arguments 参数的长度来判断传入参数的数量,从而实现不同业务逻辑 //使用arguments来实现方法重载 function OverLoad(name,age){ //arguments.length===0说明没有传入参数 switch(arguments.length){ case 0: 代码块 break; //传入了name走这块 case 1: 代码块 break; //传入了age走这块 case 2: 代码块 break; } } 直接判断传入的参数是否为undefined。 f...
获取扇贝单词接口数据
发表于2022-08-19|爬虫
@TOC 最近想做一个背单词相关的app,要是自己一个个去网站搜然后再复制到数据库中太慢了,所以就考虑能不能通过接口或者python自动将数据爬下来。 第一步,登录并寻找可以爬取的数据(想直接看结论可以到第四步)首先要先登录去寻找扇贝单词中有显示单词的地方,在我找了一圈,发现在单词学习的词表中(这要先自己提前添加一本词书),只要自己单词还没有开始背,可以在未学单词中来获取本词书的单词数据。 到这未学单词页面,首先就是先查看扇贝单词是通过服务器渲染还是客户端渲染,要是服务器渲染,在源码中就可以直接看到单词的数据,那样就可以直接通过python来进行爬取,要是客户端渲染,那就得考虑通过调用接口来拿取单词数据了。这里我到源码中去搜索matter这个单词。 结果发现,源码中并没有这个单词的数据,就说明得通过接口的方式来获得数据了。 第二步,对症下药那此时就是得通过F12的网络检查来进行抓包了。(注意:这里要在Fetch/XHR中才会更清晰的展示) 通过下方的按钮,我们转换到第二页,看看发送的网络请求是什么样的。 这里我们可以点击后在preview中查看,发现数据是有返回的,但却做了加...
vue3的ref与reactive的区别
发表于2022-08-18|Vue3
Vue3中使用ref和reactive需要注意的点最近在开发项目中,想到复杂的数据对象都应该用reactive,就想用reactive来接收父组件传来的值,再通过emit传递回去。 但在这遇到了一个坑,用reactive来接收对象时,控制台输出没有问题,但页面显示却是空白! 目前要实现的是一个编辑的功能,列表中的数据是通过父组件传递给子组件数据实现的,因为要保证单向数据流,所以当用户点击编辑按钮的时候(即触发handleEdit),将从父组件收到的点击的那一条数据存到form中。 // 对类型进行限制 interface Props { barTitle: Array<BarType>, //这里类型不用多了解,就是为了减少维护成本 tableData: Array<String> } // 提供初始值 const props = withDefaults(defineProps<Props>(), { barTitle: () => [], tableData: () => [] }) // 点击编...
node.js-fs文件操作模块
发表于2022-07-14|node.js
fs文件操作模块fs作为node.js的内置模块,只需用require("fs")引入后即可使用。可以用js来实现对计算机文件的增删改查操作 创建目录//在根目录下创建avatar文件夹 创建成功err为null,反之则有失败的原因 fs.mkdir('./avatar',(err)=>{ console.log(err) }) 目录重命名//将avatar改名为avatar2 fs.rename('./avatar','./avatar2',err=>{ console.log(err) }) 删除目录//删除名为avatar2的目录 fs.rmdir('./avatar2',err=>{ console.log(err) }) 往文件中写入数据 会覆盖其中内容//往text.txt文件中写入helloworld 文件不存在会自动创建 fs.writeFile('./text.txt','helloWorld',err=>{ console.log(e...
1…789…11
avatar
LsWorld
专注机器学习、深度学习与工程实践
文章
121
标签
128
分类
34
GitHub
公告
欢迎来到 LsWorld,这里记录机器学习学习路线、实验笔记和代码实践。
最新文章
RoPE详解:从二维旋转到PyTorch手写旋转位置编码2026-08-14
手写Mini-GPT:从因果语言模型到PyTorch完整实现2026-08-12
Transformer详解:从自注意力手算到PyTorch完整实现2026-08-11
AdamW Optimizer:为什么要把权重衰减与梯度更新解耦2026-08-10
Seq2Seq:从Encoder-Decoder到Attention与PyTorch实现2026-08-10
分类
  • C5
  • Flutter2
  • Hexo2
  • JavaScript1
  • TypeScript1
  • Vercel1
  • Vue4
  • Vue31
标签
JavaScript 文本分类 过拟合 存储系统 JSON 图神经网络 Transformer 监督学习 自然语言处理 输入输出管理 随机森林 串 策略梯度 VueRouter Vercel hexo 计算机组成原理 GRU 数据链路层 前端工程化 数据结构 Self-Attention 进程与线程 Python AI角色 AI聊天 马尔可夫决策过程 AICompanion 前端 GCN 文本处理 Mini-GPT PyTorch 运输层 Rotary Position Embedding 桌面应用 内存管理 flutter 踩坑 Flutter
归档
  • 八月 2026 7
  • 七月 2026 2
  • 六月 2026 7
  • 五月 2026 13
  • 二月 2025 2
  • 一月 2025 10
  • 十二月 2024 1
  • 二月 2024 3
网站信息
文章数目 :
121
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By LsWorld框架 Hexo 6.2.0|主题 Butterfly 5.5.5-b1