Rust,作为一种体系编程言语,以其内存保险、并发高效跟机能优胜等特点,在频年来遭到了广泛关注。对想要深刻进修Rust编程的开辟者来说,实战挑衅是晋升技能的重要道路。本文将带你从入门到粗通,经由过程一系列实战困难,解锁Rust编程的奥秘。
use std::net::TcpListener;
use std::io::{Write, BufReader, BufWriter};
fn main() -> io::Result<()> {
let listener = TcpListener::bind("127.0.0.1:7878")?;
for stream in listener.incoming() {
handle_connection(stream?)?;
}
Ok(())
}
fn handle_connection(mut stream: TcpStream) -> io::Result<()> {
let mut buf_reader = BufReader::new(&stream);
let mut buf = Vec::new();
buf_reader.read_to_end(&mut buf)?;
let response = "HTTP/1.1 200 OK\r\n\r\nHello, world!";
stream.write_all(response.as_bytes())?;
Ok(())
}
fn bubble_sort<T: Ord>(arr: &mut [T]) {
let len = arr.len();
for i in 0..len {
for j in 0..(len - i - 1) {
if arr[j] > arr[j + 1] {
arr.swap(j, j + 1);
}
}
}
}
fn main() {
let mut numbers = vec![3, 2, 1];
bubble_sort(&mut numbers);
println!("{:?}", numbers);
}
use std::fs::File;
use std::io::{self, Read, Write};
use std::process;
fn main() -> io::Result<()> {
let args: Vec<String> = process::args().collect();
if args.len() < 3 {
eprintln!("Usage: {} <command> <file>", args[0]);
process::exit(1);
}
let command = &args[1];
let file_path = &args[2];
match command.as_str() {
"compress" => compress_file(file_path)?,
"decompress" => decompress_file(file_path)?,
_ => {
eprintln!("Unknown command: {}", command);
process::exit(1);
}
}
Ok(())
}
fn compress_file(file_path: &str) -> io::Result<()> {
let mut file = File::open(file_path)?;
let mut compressed_data = Vec::new();
file.read_to_end(&mut compressed_data)?;
let compressed_file_path = format!("{}.gz", file_path);
let mut compressed_file = File::create(&compressed_file_path)?;
compressed_file.write_all(&compressed_data)?;
Ok(())
}
fn decompress_file(file_path: &str) -> io::Result<()> {
let mut compressed_file = File::open(file_path)?;
let mut decompressed_data = Vec::new();
compressed_file.read_to_end(&mut decompressed_data)?;
let decompressed_file_path = format!("{}.decompressed", file_path);
let mut decompressed_file = File::create(&decompressed_file_path)?;
decompressed_file.write_all(&decompressed_data)?;
Ok(())
}
经由过程以上实战挑衅,你可能逐步晋升Rust编程技能,解锁更多实战困难。一直现实跟总结,信赖你将可能成为一名优良的Rust开辟者。