小编use*_*708的帖子

如何为包含闭包的结构创建构造函数?

我将如何实现一个方法作为包含闭包的结构的构造函数?我是Rust的新手,关于封装正在积极开展的工作,我很难在文档中找到解决方案.

struct A<'self> {
    fOne: &'self fn(),
}

impl<'self> A<'self> {
    fn new() {
        println!("Ideally this would return a struct of type A");
    }
}

fn run(f: &fn()) {
    f();
}

fn main() {
    let apples = 5;
    let example = A {
        fOne: || {
            println!("{} apples on the tree.", apples);
        },
    };
    A::new();

    run(example.fOne);
}
Run Code Online (Sandbox Code Playgroud)

这是我能够在不遇到大量问题的情况下获得的.我似乎无法创建一个A::new()接受闭包作为参数的版本,使用该参数创建一个类型的结构A,然后返回新创建的结构.有没有办法做到这一点,或者如果没有,我不理解什么?

rust

6
推荐指数
1
解决办法
5943
查看次数

通过索引修改String中的字符

我写了一个函数来titlecase(首字母大写,所有其他小写)一个借来的字符串,但它最终变得比它应该的更麻烦.

fn titlecase_word(word: &mut String) {

    unsafe {
        let buffer = word.as_mut_vec().as_mut_slice();
        buffer[0] = std::char::to_uppercase(buffer[0] as char) as u8;

        for i in range(1, buffer.len()) {
            buffer[i] = std::char::to_lowercase(buffer[i] as char) as u8;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

不安全的块是特别不希望的.有没有更好的方法来修改索引的字符串内容?

rust

5
推荐指数
1
解决办法
3011
查看次数

标签 统计

rust ×2