小编Nas*_*nas的帖子

我该如何调试宏?

所以我有以下宏代码我正在尝试调试.我是从Rust Book的"The Deep end"一节中读到的.我重命名宏中的变量,以更密切地关注这篇文章.

我的目标是让程序打印出BCT程序的每一行.我很清楚这是编译器很重.

rustc给我的唯一错误是:

user@debian:~/rust/macros$ rustc --pretty expanded src/main.rs -Z unstable-options > src/main.precomp.rs
src/main.rs:151:34: 151:35 error: no rules expected the token `0`
src/main.rs:151     bct!(0, 1, 1, 1, 0, 0, 0; 1, 0);
Run Code Online (Sandbox Code Playgroud)

我可以采取什么步骤,以找出其中的宏观问题是从哪里来的?

这是我的代码:

fn main() {
{
    // "Bitwise Cyclic Tag" automation through macros
    macro_rules! bct {
        // cmd 0:  0 ... => ...
        (0, $($program:tt),* ; $_head:tt)
            => (bct_p!($($program),*, 0 ; ));
        (0, $($program:tt),* ; $_head:tt, $($tail:tt),*)
            => …
Run Code Online (Sandbox Code Playgroud)

rust rust-macros

11
推荐指数
2
解决办法
6494
查看次数

如何返回一个由一个函数生成的迭代器,该函数采用"自我"(当自己在本地创建时)?

更新:帖子的标题已更新,答案已移出问题.简短的回答是你不能.请看我对这个问题的回答.

我下面的错误处理的博客文章在这里(GitHub的,因为这是在这里),我试图进行一些修改代码,以便在search函数返回Iterator,而不是一个Vec.这太疯狂了,我被困住了.

我已经达到了这一点:

fn search<'a, P: AsRef<Path>>(file_path: &Option<P>, city: &str)
    -> Result<FilterMap<csv::reader::DecodedRecords<'a, Box<Read>, Row>,
                        FnMut(Result<Row, csv::Error>)
                            -> Option<Result<PopulationCount, csv::Error>>>,
              CliError>  {
    let mut found = vec![];
    let input: Box<io::Read> = match *file_path {
        None => Box::new(io::stdin()),
        Some(ref file_path) => Box::new(try!(fs::File::open(file_path))),
    };

    let mut rdr = csv::Reader::from_reader(input);
    let closure = |row: Result<Row, csv::Error>| -> Option<Result<PopulationCount, csv::Error>> {
        let row = match row {
            Ok(row) => row,
            Err(err) => return Some(Err(From::from(err))),
        }; …
Run Code Online (Sandbox Code Playgroud)

rust

5
推荐指数
2
解决办法
1115
查看次数

Ruby Null-Conditional运算符

C#有一个像这样工作的空条件运算符

SomeObject?.SomeParam
Run Code Online (Sandbox Code Playgroud)

如果SomeObject为null,则该表达式的结果将为null,而不是抛出空引用异常.Ruby中是否存在类似的内容?

ruby

2
推荐指数
1
解决办法
917
查看次数

标签 统计

rust ×2

ruby ×1

rust-macros ×1