mut
  • 2024-11-04详解Rust标准库:VecDeque 队列
    theme:githubhighlight:an-old-hope查看本地官方文档安装rust后运行rustupdoc查看TheStandardLibrary即可获取标准库内容std::connections::VecDeque定义队列是遵循先入先出规则的线性数据结构,在内存中不一定连续VecDeque定义:可增长的环形缓冲区实现的双端队
  • 2024-11-04rust学习四、控制语句
    rust的控制语句和大部分语言没有什么区别,都是熟悉的for,while,loop,if。比较不同的是,在绝大部分非常流行的语言中都有的switch,rust是没有的。诸如c/c++,java,javascript,c#。连PL/SQL都有casewhen语句。 一、基本的for、while、if,loop示例-for,while,loop,if/**学习控
  • 2024-10-30nginx服务
    IspSrv服务WEB服务安装nginx软件包。创建ispweb.chinaskills.cn站点。配置文件名为ispweb.conf,放置在/etc/nginx/conf.d/目录下。网站根目录为/mut/crypt(目录不存在需创建)。启用FastCGI功能,让nginx能够解析php请求。index.php内容使用Welcometo2023ComputerNetworkA
  • 2024-10-30rust中map和set的基本使用
    1.HahsMaphttps://rustwiki.org/zh-CN/std/collections/struct.HashMap.html跟着文档,查看一下hashmap的方法,调试,输出一下,就能学会使用了。usestd::collections::HashMap;usestd::any::type_name;//输出变量类型fnprint_type_of<T>(_:&T){println!("{}",type_name
  • 2024-10-28rust中ref及引用的使用
    由C++指针和引用引发的思考#include<iostream>usingnamespacestd;voidc1(inta){a=6;}voidc2(int*a){*a=7;}voidc3(int&a){a=8;}intmain(){inta=5;printf("ais%d\n",a);c1(a);printf("ai
  • 2024-10-27Rust的Reborrow机制
    最近,在使用Rust时遇到了Reborrow的概念,记录下来以备以后参考。1.起因起因准备对数据进行Min-Max标准化处理,也就是将一系列数据映射到一个新的范围。首先,需要遍历数据,找出其中的最大值和最小值,然后通过公式改变原始数据集的值。Min-Max公式:标准化后的值=(原始值-最小值)/
  • 2024-09-28rust交换数组中的两个元素
    不可以直接用std::mem::swap,因为这个函数需要拿两个可变引用,但是不可以同时拿两个这个数组的可变引用。所以要么手写:lettmp=a[i];a[i]=a[j];a[j]=tmp;要么用Vec::swap:a.swap(i,j);其内部实现:fnswap(&mutself,a:usize,b:usize){unsafe{//
  • 2024-09-15LOJ#2885. 「SDOI2010」猪国杀
    对拍器在此。https://www.luogu.com/discuss/81283献忠!AC代码modoiread{usestd::{io::{stdin,Read},ops::{Add,Mul,Neg},};pubfnnext()->u8{letmuta=stdin().lock();letmutc=[0u8];matcha
  • 2024-08-21rust库-ouroboros中文文档
    文档原文:https://docs.rs/ouroboros/latest/ouroboros/attr.self_referencing.html属性宏ouroboros::self_referencing#[self_referencing]此宏用于将常规结构转换为自引用结构。举个例子:useouroboros::self_referencing;#[self_referencing]structMyStruct{int_d
  • 2024-08-190243-RLTK-记住可视区
    环境Time2022-11-30WSL-Ubuntu22.04RLTK0.8.7前言说明参考:https://bfnightly.bracketproductions.com/rustbook目标基于前一节的内容,角色只能看见自身周围,这一节将记住探索过的区域。记住打开的地图#[derive(Default)]pubstructMap{pubtiles:Vec<TileTy
  • 2024-08-190244-RLTK-增加地图怪物
    环境Time2022-12-01WSL-Ubuntu22.04RLTK0.8.7前言说明参考:https://bfnightly.bracketproductions.com/rustbook目标基于前一节的内容,在每个房间的中间放置怪物。comp.rsuserltk::{console,field_of_view,Point,RGB};usespecs::prelude::*;usespecs_derive:
  • 2024-08-160236-RLTK-渲染动态字符
    环境Time2022-11-29WSL-Ubuntu22.04RLTK0.8.7前言说明参考:https://bfnightly.bracketproductions.com/rustbook目标在前一节的基础上,将静止的字符进行移动。Component#[derive(Component)]structPosition{x:i32,y:i32,}#[derive(Component)]st
  • 2024-08-160237-RLTK-控制角色移动
    环境Time2022-11-29WSL-Ubuntu22.04RLTK0.8.7前言说明参考:https://bfnightly.bracketproductions.com/rustbook目标使用键盘来控制角色在窗口中进行移动。Component#[derive(Component)]structPosition{x:i32,y:i32,}#[derive(Component)]struc
  • 2024-08-160238-RLTK-生成大地图
    环境Time2022-11-29WSL-Ubuntu22.04RLTK0.8.7前言说明参考:https://bfnightly.bracketproductions.com/rustbook目标基于前一节的内容,生成一张可以让角色移动的大地图。地板和墙#[derive(PartialEq,Copy,Clone)]enumTileType{Wall,Floor}计算坐标pub
  • 2024-08-160239-RLTK-分割不同文件
    环境Time2022-11-30WSL-Ubuntu22.04RLTK0.8.7前言说明参考:https://bfnightly.bracketproductions.com/rustbook目标基于前一节的内容,随着main.rs文件中的内容越来越多,将其进行分割。comp.rsuserltk::RGB;usespecs::prelude::*;usespecs_derive::Component;
  • 2024-08-160240-RLTK-生成小房间
    环境Time2022-11-30WSL-Ubuntu22.04RLTK0.8.7前言说明参考:https://bfnightly.bracketproductions.com/rustbook目标基于前一节的内容,生成两个小房间,只修改map.rs文件。生成房间函数fnapply_room_to_map(room:&Rect,map:&mut[TileType]){foryinroom
  • 2024-08-120218-地址解析协议
    环境Time2022-11-20VirtualBox7.0.2Rust1.65.0pnet0.31.0CentOS7前言说明参考:https://docs.rs/pnet_packet/latest/pnet_packet/index.html目标使用两台虚拟机,通过IP地址,获取到目标主机的MAC地址。日常使用的时候,都是使用IP连接服务器,需要使用地址解析协
  • 2024-08-120219-使用 TAP 来进行通信
    环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0tun-tap0.1.3前言说明参考:https://docs.rs/pnet_packet/latest/pnet_packet/index.html参考:https://www.kernel.org/doc/html/latest/networking/tuntap.html目标通过TAP来模拟二层设备,接收之前发送的
  • 2024-08-120220-发送 ARP 回应
    环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0tun-tap0.1.3前言说明参考:https://docs.rs/pnet_packet/latest/pnet_packet/index.html参考:https://www.kernel.org/doc/html/latest/networking/tuntap.html目标使用TAP后,接收到ARP操作系统不再自动
  • 2024-08-06Rust_learn_1
    变量与可变性变量声明变量使用let关键字,在默认情况下,变量是不可变的(Immutable)。为此解决该问题,声明变量时在前面加上mut,就可以使变量可变常量常量(constant),在绑定值之后也是不可变的,但是与不可变的变量有很多区别:不可以使用mut,常量永远是不变的声明常量用const关键
  • 2024-07-29Rust——引用和借用
    前言在这章我们将开始学习Rust的引用和借用,它们是Rust中重要的概念,它们允许我们创建可变引用,以及创建不可变引用。内容引用和借用在下面的示例中,我们必须将String返回给调用函数,以便在调用calculate_length后仍能使用String,因为String被移动到了calculate_length内。
  • 2024-07-25Rust 中 *、&、mut、&mut、ref、ref mut 的用法和区别
    Rust中*、&、mut、&mut、ref、refmut的用法和区别在Rust中,*、ref、mut、&和refmut是用于处理引用、解引用和可变性的关键字和操作符,它们在不同的上下文中有不同的用法。一、*解引用*属于操作符1.作用用于解引用指针或引用,以访问其指向的值。通过解引用,可以从指
  • 2024-07-240207-pnet 模拟链路层数据
    环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0前言说明参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/dummy目标使用pnet_datalink包中的dummy模拟数据链路层的数据交换。Cargo.toml[package]edition="2021"name="network"versi
  • 2024-07-240209-模拟发送多个数据包
    环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0前言说明参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/dummy目标使用pnet_datalink包中的dummy模拟数据链路层发送多个数据包。网络接口letinterface=dummy::dummy_interface(44);创
  • 2024-07-22rust may_minihttp server
    Cargo.toml:[package]name="demo"version="0.1.0"edition="2021"[dependencies]bytes="1.6.1"may="0.3.45"may_minihttp={git="https://github.com/Xudong-Huang/may_minihttp.git"}y