match NEIGBOURHOOD_OFFSETS.iter()
.map(|&(ox, oy)| (x + ox, y + oy))
.filter(|&(x, y)| (0 <= x && x < width) && (0 <= y && y < height))
.filter(|&(x, y)| field[y as usize].as_bytes()[x as usize] == b'*')
.count() {
0 => ' ',
n => (n as u8 + '0' as u8) as char
}
NEIGBOURHOOD_OFFSETS是个array
static NEIGBOURHOOD_OFFSETS: &'static [(i32, i32)] = &[
(-1, -1), (0, -1), (1, -1),
(-1, 0), (1, 0),
(-1, 1), (0, 1), (1, 1),
];
是个有关扫雷的题目~
1
共 8 条评论, 1 页
评论区
写评论让对象数据不离开所有权空间
不然rust一assign就容易导致所有权变更 最后有人万一用了前面的容易着火是吧
--
👇
是也乎: 是也乎,( ̄▽ ̄)
这就是 Rust 中最舒服的链式调用支持吧, 可以在任何允许的地方通过 . 链接一系列操作, 就地完成数据的处理, 然后进入下一个语法块, 本质上就是让对象数据不离开所有权空间, 尽可能完成一堆常见处理...
不过, 在 Rust 标准库支持下这个常见几乎能完成 80% 场景中的核心操作了...
如果任性的话, 一个应用系统可以就这么一个链式操作堆完成所有任务了.
--
👇
overheat: 我感觉这里关键的概念是:表达式和语句的区别吧?
那一大坨的类函数式编程的code,最后就是一个表达式expression,有个返回值。这样看起来就是简单的match用法了
statement expression?
--
👇
overheat: 我感觉这里关键的概念是:表达式和语句的区别吧?
那一大坨的类函数式编程的code,最后就是一个表达式expression,有个返回值。这样看起来就是简单的match用法了
是也乎,( ̄▽ ̄)
这就是 Rust 中最舒服的链式调用支持吧, 可以在任何允许的地方通过 . 链接一系列操作, 就地完成数据的处理, 然后进入下一个语法块, 本质上就是让对象数据不离开所有权空间, 尽可能完成一堆常见处理...
不过, 在 Rust 标准库支持下这个常见几乎能完成 80% 场景中的核心操作了...
如果任性的话, 一个应用系统可以就这么一个链式操作堆完成所有任务了.
--
👇
overheat: 我感觉这里关键的概念是:表达式和语句的区别吧?
那一大坨的类函数式编程的code,最后就是一个表达式expression,有个返回值。这样看起来就是简单的match用法了
我感觉这里关键的概念是:表达式和语句的区别吧?
那一大坨的类函数式编程的code,最后就是一个表达式expression,有个返回值。这样看起来就是简单的match用法了
我晕 太傻了。。。 等于是对count进行match 前面一堆调用在铺垫哈
谢谢啦 这论坛还没消息系统 你还能看到~
--
👇
Pikachu: 为什么会有这种感觉呢?这里match确实是用来匹配的啊。它基本等价于
--
👇
Snowmanzzz: 谢谢皮卡丘,我理解中match只是用来匹配的,而这种用法看着不是啊
为什么会有这种感觉呢?这里match确实是用来匹配的啊。它基本等价于
--
👇
Snowmanzzz: 谢谢皮卡丘,我理解中match只是用来匹配的,而这种用法看着不是啊
谢谢皮卡丘,我理解中match只是用来匹配的,而这种用法看着不是啊
--
👇
Pikachu: 能把你的问题再描述清楚一点吗?这段代码有什么不清楚的?
能把你的问题再描述清楚一点吗?这段代码有什么不清楚的?