V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  hsfzxjy  ›  全部回复第 38 页 / 共 57 页
回复总数  1127
1 ... 34  35  36  37  38  39  40  41  42  43 ... 57  
个人不喜欢用 WYSIWYG
2022-07-13 01:07:48 +08:00
回复了 8520ccc 创建的主题 程序员 一文简单明了说明为什么 float64 float32 会有精确缺失的问题
感觉不同人的盲点还是不一样的。有的人就是知道了浮点数不能表示所有实数,但还是迷惑「哎呀 0.1 这么简单的数怎么就不能表示」。这时就要和他用进制解释。
2022-07-13 01:02:33 +08:00
回复了 8520ccc 创建的主题 程序员 一文简单明了说明为什么 float64 float32 会有精确缺失的问题
@yeqizhang 不是不止这么点,而是不到 2^64 个,nan 要占掉很多个位
2022-07-12 18:30:56 +08:00
回复了 fiypig 创建的主题 问与答 请教减肥
结了婚就会胖吗🤔
2022-07-06 19:59:38 +08:00
回复了 yf1205204316 创建的主题 问与答 vscode 有没有办法设置段首缩进
你是想

1. 行首自动加空格 还是
2. 行首无特殊字符,但看起来是缩进了
如果对于每个参数组 (ii, jj, k, l, m) 而言运算是独立的,也就是参数是 (ii1, jj1, k1, l1, m1) 时的运算不依赖于参数是 (ii2, jj2, k2, l2, m2) ,那我觉得你可以尝试并行化这 C(m,5)组运算,再把它们的结果合起来
2022-07-06 19:01:38 +08:00
回复了 ecloud 创建的主题 Rust Option<(String, String)>怎么转成 Option<String>
我来给你分析一下

首先 con.brpop::<_, Option<(String, String)>>("ttt", 1) 返回的是 RedisResult<Option<(String, String)>>,他有几个可能值

1. Err(_) 发生了错误
2. Ok(None) 正常返回了,但是内容为空
3. Ok((str1, str2)) 正常返回了非空内容

接下来的 ? 操作符会把 RedisResult<Option<(String, String)>> 变为 Option<(String, String)。如果是第一种情况,则这里会提前把错误抛出去,否则,提取出来的 Option<(String, String)> 会继续下面的变换

然后你要知道,对于一个类型为 Option<U> 的值 x ,以及一个变换函数 f: Fn(U) -> T ,x.map(f) 会变成一个 Option<T> 类型的值。

带入到你的场景就是 U = (String, String), T = String, 变换函数 |(a,b)| b 的类型是 Fn((String,String) -> String 。

所以 .map(|(a,b)|b) 会接着把 Option<(String, String)> 变成 Option<String>。

最后,你的函数想要一个 RedisResult<Option<String>> 的返回值,那只需使用 Ok() 把 Option<String> 变成 RedisResult<Option<String>> 就好了
2022-07-06 18:52:49 +08:00
回复了 ecloud 创建的主题 Rust Option<(String, String)>怎么转成 Option<String>
fn do_redis(con: &mut redis::Connection) -> RedisResult<Option<String>> {
Ok(con
.brpop::<_, Option<(String, String)>>("ttt", 1)?
.map(|(a, b)| b))
}

写成这样就可以了
2022-07-06 18:40:49 +08:00
回复了 ecloud 创建的主题 Rust Option<(String, String)>怎么转成 Option<String>
就是直接把 18 楼的方案替换到你附言的代码中
2022-07-06 18:39:25 +08:00
回复了 ecloud 创建的主题 Rust Option<(String, String)>怎么转成 Option<String>
你尝试了吗,不要感觉,不妨试试

map 是可以作用于 Option<(String, String)>
2022-07-06 18:33:10 +08:00
回复了 lanlanye 创建的主题 Python Python 加入类型注解后,父类到子类的强制转换怎么处理?
粗暴点就用 typing.cast ,规范点就给 AbstractMapper 加范型参数
2022-07-06 18:22:54 +08:00
回复了 ecloud 创建的主题 Rust Option<(String, String)>怎么转成 Option<String>
可能需要加类型指引

return Ok(con.brpop::<&str, Option<(String, String)>>("ttt", 1)?.map(|(a,b)| b));
2022-07-06 18:21:35 +08:00
回复了 ecloud 创建的主题 Rust Option<(String, String)>怎么转成 Option<String>
@ecloud 我 15 楼返回的就是 RedisResult<Option<String>>,就是你想要的
2022-07-06 18:14:59 +08:00
回复了 ecloud 创建的主题 Rust Option<(String, String)>怎么转成 Option<String>
return Ok(con.brpop("ttt", 1)?.map(|(a,b)| b));

也是可以的,你试试
2022-07-06 18:11:53 +08:00
回复了 ecloud 创建的主题 Rust Option<(String, String)>怎么转成 Option<String>
要注意看函数返回的类型
2022-07-06 18:10:32 +08:00
回复了 ecloud 创建的主题 Rust Option<(String, String)>怎么转成 Option<String>
因为 brpop 返回的是 RedisResult<Option<(String, String)>>,你要这样
return Ok(con.brpop("ttt", 1)?.map(|a| a.1));
2022-07-06 18:02:32 +08:00
回复了 ecloud 创建的主题 Rust Option<(String, String)>怎么转成 Option<String>
None 不是类型,是 Option<_>类型的一个值
2022-07-06 18:00:57 +08:00
回复了 ecloud 创建的主题 Rust Option<(String, String)>怎么转成 Option<String>
None 是 Option<_>的一个值啊

let x : Option<(String,String)>=None;
x.map(|(a,b)|b);

这样是没问题的。或者你能不能给一个行不通的例子?
1 ... 34  35  36  37  38  39  40  41  42  43 ... 57  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5167 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 08:25 · PVG 16:25 · LAX 01:25 · JFK 04:25
Developed with CodeLauncher
♥ Do have faith in what you're doing.