【Rust日报】2021-11-16 「投票」为Rust标准库添加控制台输入API

2024-06-22 23:18

本文主要是介绍【Rust日报】2021-11-16 「投票」为Rust标准库添加控制台输入API,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【投票】为Rust标准库添加控制台输入API

Simple Console Input API for Standard Library

StrawPoll.com

我们正试图将一个简单的控制台输入API推送到标准库中,以使编写简单的命令行输入变得更容易,我们需要社区决定实现的高级程度。因为这是一个相当有争议的话题(双方的数量非常均匀),所以这次投票就是为了解决这个问题。

注意:下面的例子不是最终的,它只是一个用来阐述这个概念的例子。

简单输入的例子:

let age: i32 = std::inputln!()?.parse().expect("Invalid age!");

高级输入的例子:

let person = scan!("{} {}", String, u8).expect("Invalid input!");

或者

let name: String;
let age: u8;scan!("{} {}", name, age).expect("Invalid input!");

「投票」

  • A. 简单输入系统:一个函数,读取一行、执行错误检查并返回一个字符串;

  • B. 高级输入系统:一个或多个宏,提供格式化输入,用于读取多个值和各种类型;

  • C. 二者都选择:在需要时提供简单的输入宏和高级宏;

  • D. 这些都不是:别的东西。

如果想参与投票,请访问原文投票。

【Reddit讨论帖】Rust适合做科学计算吗?

Is rust good for mathematical computing?

科学计算相关的任务:

  • 矩阵计算

  • 数值分析

对编程语言的要求:

  • 对lambda的良好支持;

  • 简单易用的函数组合;

Rust语言本身对lambda(在Rust中称为闭包)、通用组合和函数式编程有很好的支持,但像柯里化(curry)这样的东西看起来并不漂亮。

目前Rust语言实现的跟科学计算相关的crate列表,可以在此查看:Scientific Computing

在Rust中测试trait的多个实现

Testing multiple implementations of a trait in Rust

文中介绍了几种测试trait实现逻辑的实用方法:

  1. 基于trait bound的测试;

  2. 基于宏和sub-module的测试;

另外也可以使用test-case 这个crate来进行测试:

pub trait Calculator {fn new() -> Self;fn add(&self, a: u32, b: u32) -> u32;
}pub struct Foo {}impl Calculator for Foo {fn new() -> Self {Self {}}fn add(&self, a: u32, b: u32) -> u32 {a + b}
}pub struct Bar {}impl Calculator for Bar {fn new() -> Self {Self {}}fn add(&self, a: u32, b: u32) -> u32 {if b == 0 {a} else {self.add(a, b - 1) + 1}}
}#[cfg(test)]
mod tests {use super::{Bar, Calculator, Foo};use test_case::test_case;#[test_case(Foo::new())]#[test_case(Bar::new())]fn trait_tester(c: impl Calculator) {assert_eq!(c.add(2, 3), 5);assert_eq!(c.add(10, 43), 53);}
}

变量是如何在Python和Rust中保存的——对比4: str/string

How variables are saved in Python and Rust. Side by Side 4: str/string

在Python3中,和str相关的结构体有三个:

  • PyASCIIObject:纯ascii字符串;

  • PyCompactUnicodeObject:Unicode字符串;

  • PyUnicodeObject:兼容历史API的Unicode字符串。

在Rust中,和string相关的类型有:

  • &str:字符串切片;

  • String:动态扩容的字符串;

Docker Activity:获取docker容器的统计数据和能耗

Get stats and the energy consumption of your docker containers

Docker activity是一种用于监视Docker容器统计信息并输出其能耗的工具。

当前它还处于早期阶段,对于demoing来说,它很快就会变得更好。。。

项目地址:

Docker Activity


From 日报小组 odd-cat

社区学习交流平台订阅:

Rust.cc 论坛: 支持 rss

微信公众号:Rust 语言中文社区

这篇关于【Rust日报】2021-11-16 「投票」为Rust标准库添加控制台输入API的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085686

相关文章

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

C#控制台程序同步调用WebApi实现方式

《C#控制台程序同步调用WebApi实现方式》控制台程序作为Job时,需同步调用WebApi以确保获取返回结果后执行后续操作,否则会引发TaskCanceledException异常,同步处理可避免异... 目录同步调用WebApi方法Cls001类里面的写法总结控制台程序一般当作Job使用,有时候需要控制

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

Python用Flask封装API及调用详解

《Python用Flask封装API及调用详解》本文介绍Flask的优势(轻量、灵活、易扩展),对比GET/POST表单/JSON请求方式,涵盖错误处理、开发建议及生产环境部署注意事项... 目录一、Flask的优势一、基础设置二、GET请求方式服务端代码客户端调用三、POST表单方式服务端代码客户端调用四

SpringBoot结合Knife4j进行API分组授权管理配置详解

《SpringBoot结合Knife4j进行API分组授权管理配置详解》在现代的微服务架构中,API文档和授权管理是不可或缺的一部分,本文将介绍如何在SpringBoot应用中集成Knife4j,并进... 目录环境准备配置 Swagger配置 Swagger OpenAPI自定义 Swagger UI 底

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

Python标准库datetime模块日期和时间数据类型解读

《Python标准库datetime模块日期和时间数据类型解读》文章介绍Python中datetime模块的date、time、datetime类,用于处理日期、时间及日期时间结合体,通过属性获取时间... 目录Datetime常用类日期date类型使用时间 time 类型使用日期和时间的结合体–日期时间(

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri