Rust第一次综合练习
读取文件哈。
但分成了lib.rs和main.rs。
按文档上不行,自己胡乱的调通,但原理不熟悉。
里面的套路代码还是蛮多的。
src/lib.rs
use std::io::Read;
use std::error::Error;
pub struct Config {
pub query: String,
pub filename: String,
}
impl Config {
pub fn new(args: &[String]) -> Result<Config, &'static str> {
{
return Err("not enough arguments.");
}
let query = args[].clone();
let filename = args[].clone();
Ok(Config { query, filename })
}
}
pub fn run(config: Config) -> Result<(), Box<Error>> {
let mut file = std::fs::File::open(config.filename)?;
let mut contents = String::new();
file.read_to_string(&mut contents)?;
println!("With text:\n{}", contents);
Ok(())
}
src/main.rs
use std::env;
use std::process;
extern crate minigrep;
fn main() {
let args: Vec<String> = env::args().collect();
let config = minigrep::Config::new(&args).unwrap_or_else(|err| {
println!("Problem parsing arguments: {}", err);
process::exit();
});
println!("Search for {}", config.query);
println!("In file {}", config.filename);
if let Err(e) = minigrep::run(config) {
println!("Application error: {}", e);
process::exit();
};
}

Rust第一次综合练习的更多相关文章
- Rust第一次---centos 7下的安装,配置,测试
现在安装都依赖于网络,命令比较简单. 一,运行脚本,安装runstup 1,运行如下脚本: curl https://sh.rustup.rs -sSf | sh 2,输入默认项1,完成余下的安装 二 ...
- 基于CameraLink的逻辑综合和版图设计
前期接口设计用的是Vivado18.3+Modelsim10.6,逻辑综合及版图生成的环境是Ubuntu16,逻辑综合用的工具Design Compiler,生成版图用的工具是Encounter. 下 ...
- Rust第二次综合练习
啊,啊,啊 原来我一直用的linux rust1.1的老版本, 很多书上的写法都不行,得调试. 今天早上,换成了win rust1.3版本, 于是,可以按书上标准的语法来弄了. 一,main.rs u ...
- 腾讯2020校园招聘-后台&综合-第一次笔试 题解
对数据结构和算法感兴趣的可以关注一下https://github.com/MCQ1999/Datastructure_Algorithm_Solutions,分享算法题的解题思路和代码~ 1.压缩算法 ...
- 记第一次正式线上笔试(Tencent——正式考-技术研发类-综合-2018实习生招聘)
选择题做的跟傻逼一样,不多说了..大学只打了ACM还不是计算机科班出身的我,连好多名词都不认识..... 三道编程题很简单,下面给出三道题的大致题意以及题解. 1.给出n和m,满足(2m)可以整除n. ...
- 牛客腾讯2020校园招聘-后台&综合-第一次笔试
第一题 Q: 小Q想要给他的朋友发送一个神秘字符串,但是他发现字符串的过于长了,于是小Q发明了一种压缩算法对字符串中重复的部分进行了压缩,对于字符串中连续的m个相同字符串S将会压缩为m|S,例如字符串 ...
- IP第一次实验:静态综合
- Rust到底值不值得学--Rust对比、特色和理念
前言 其实我一直弄不明白一点,那就是计算机技术的发展,是让这个世界变得简单了,还是变得更复杂了. 当然这只是一个玩笑,可别把这个问题当真. 然而对于IT从业者来说,这可不是一个玩笑.几乎每一次的技术发 ...
- Android 综合揭秘 —— 全面剖释 Service 服务
引言 Service 服务是 Android 系统最常用的四大部件之一,Android 支持 Service 服务的原因主要目的有两个,一是简化后台任务的实现,二是实现在同一台设备当中跨进程的远程信息 ...
随机推荐
- pytroch 权重初始化和加载词向量的方法
1.几种不同的初始化方法 import torch.nn as nn embedding = torch.Tensor(3, 5) #如下6种初始化方法 #正态分布 nn.init.normal_(e ...
- Python进阶-XVIV 类的内置方法:__str__ 、__repr__、析构函数(__del__)、双下的call,eq,new,hash 以及item相关的三个方法
类的内置方法 它与内置函数有紧密的联系,有的内置函数就是调用的内置方法. 在顶级父类obj中有: 两个双下方法 obj.__str__ str(obj) obj.__repr__ repr(obj) ...
- 探索clickout指令实现
实现一个可复用的点击区域之外方法 随着3大框架的风靡,我们从以前的layer等UI库迁移到了更加强大的UI库,比如vue的好伙伴element,组件库的作用是封装一些常用的功能,将HTML.CSS.J ...
- JAVA基础系列:ThreadLocal
1. 思路 什么是ThreadLocal?ThreadLocal类顾名思义可以理解为线程本地变量.也就是说如果定义了一个ThreadLocal,每个线程往这个ThreadLocal中读写是线程隔离,互 ...
- centos 文本文件编码转换
iconv -f utf-8 -t gbk shtel_single_utf8.mlf > shtel_single_gbk.mlf
- LeetCode 739:每日温度 Daily Temperatures
题目: 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高,请在该位置用 0 来代替. 例如,给定一个列表 temperature ...
- sierpinski垫片(3D)[误]
今天是因为可以用py而高兴的一天. 昨天老板淡淡地回了一句,sierpinski地毯画得挺好的. 我思考了五秒钟之后,想起来作业其实是sierpinski垫片. 三角垫片比地毯难做多了. 因为 ...
- [KMP]一本通(http://ybt.ssoier.cn:8088) 1698:字符串匹配
字符串匹配 [题目描述] 对于一个字符集大小为C的字符串pp,可以将任意两个字符在p中的位置进行互换,例如p=12321,交换1.21.2得到21312,交换1.4得到42324,交换可以进行任意次. ...
- centos ftp服务器搭建 vsftpd 匿名访问配置方法 ftp 550 Failed to open file 错误处理
vsftpd是linux下常用的ftp服务软件,配置起来其实不复杂,只是网上很多文章,配置后都无法成功.我使用它是用于局域网内部分享文件的,所以使用匿名的方式. ftp本身密码是明文传输的,如果需要安 ...
- How-important-is-deep-learning-in-autonomous-driving
Deep learning (DL) is a very interesting technology indeed and yes it does solve perception really w ...