rust
String #
fn main()
{
//String和&str的区别可自行百度
//空字符串
let s=String::new();
//可变字符串
let mut s1=String:from("123");
//追加字符串
s1.push_str("456");
//追加字符
s1.push("1");
}
文件读写 #
读文件 #
use std::{fs::File, io::Read};
fn main(){
//使用create如果文件不存在则创建,存在则会覆盖源文件(网上所说是会)
//如果使用open,没有也是会报错
let mut file=File::create("test.txt").expect("open error");
let mut s=String::new();
let _ = file.read_to_string(&mut s);
print!("{:#?}",s);
}
写文件 #
use std::io::Write;
fn main() {
let mut file = std::fs::File::create("data.txt").expect("create failed");
file.write_all("12345".as_bytes()).expect("write failed");
file.write_all("hello world".as_bytes()).expect("write failed");
}
追加数据 #
use std::fs::OpenOptions;
use std::io::Write;
fn main() {
let mut file = OpenOptions::new().append(true).open("data.txt").expect("cannot open file");
file.write_all("123".as_bytes()).expect("write failed");
file.write_all("456".as_bytes()).expect("write failed");
file.write_all("789".as_bytes()).expect("write failed");
}
删除文件 #
use std::fs;
fn main() {
fs::remove_file("data.txt").expect("could not remove file");
println!("file is removed");
}
文件是否存在 #
fn main(){
let file_path = Path::new(“path_to_file”);
if file_path.exists() {
println!("文件存在");
}else {
println!("文件不存在");
}
}
json #
use std::fs::File;
use serde_json::Value;
fn main(){
//解析io流文件
let f=File::open("test.txt").unwrap();
let json:Value=serde_json::from_reader(f).unwrap();
//let json:Value=serde_json::from_str(text).unwrap();
for i in json["data"].as_array().unwrap(){
println!("{}",i["name"].as_str().unwrap());
}
//快速定义
let json_object=json!({"total":123,"data":[]);
}
reqwest #
use std::{time::{SystemTime, UNIX_EPOCH}};
fn get_time() -> String{
SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap()
.as_millis()
.to_string()
}
async fn post() -> Result<String, reqwest::Error>{
let client = reqwest::Client::new();
// let mut headers = HeaderMap::new();
// headers.insert("Content-Type", "application/json".parse().unwrap());
let time=get_time();
let data=[("phone","17340307464"),("password","d41d8cd98f00b204e9800998ecf8427e"),("countrycode",""),("rememberLogin","true"),("timerstamp",&time)];
Ok(client.post("https://music.163.com/weapi/login/cellphone").json(&data).send().await?.text().await?)
}
#[tokio::main]
async fn main() {
if let Ok(res) = post().await {
println!("{:#?}", res);
}
}
集合相关 #
fn main() {
let a = vec![(2, "aa"), (4, "c"), (3, "cc")];
let b = vec![(3, "cc"), (5, "ee"), (2, "aa")];
// 取交集
let intersect = a.iter().filter(|&u| b.contains(u)).collect::<Vec<_>>();
println!("a 和 b 交集是:{:?}", intersect);
// 取差集
let minusion = a.iter().filter(|&u| !b.contains(u)).collect::<Vec<_>>();
println!("a 和 b 差集是:{:?}", minusion);
// 取并集
let union = a
.iter()
.filter(|&u| !b.contains(u))
.chain(&b)
.collect::<Vec<_>>();
println!("a 和 b 并集是:{:?}", union);
// 取补集
let complement = a
.iter()
.filter(|&u| !b.contains(u))
.chain(b.iter().filter(|&u| !a.contains(u)))
.collect::<Vec<_>>();
println!("a 和 b 补集是:{:?}", complement);
}
hashmap #
hashmap 补集
...