Re[13]: Развитие Rust
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 27.01.14 12:20
Оценка:
Здравствуйте, cl-user, Вы писали:

Вообще, я тебя обманул, функции и замыкания вполне себе взаимозаменяемые, и в действительности просто ключевое слово в очередной раз переименовали
fn test(func: proc()) {
    func();
}

fn test_func() {
    println!("Inside function");
}

fn main() {
    do test {
        println!("Inside clojure");
    }

    test(test_func);
}


CU>Вот перепробовал уже 48 вариантов, но ни как не могу получить из &str -> ~str или ~str -> &str


Таки я бы начал с чтения документации Смотри: &str – ссылка на "какую-то строку". Эта строка может быть размещена на стеке, в локальной куче или куче обмена, т.е. компилятор не имеет ни малейшего представления о том, что ты передал и ожидает некой подсказки. Так как все эти 3 хранилища разделены физически, тебе необходимо сделать явное преобразование, как в примере ниже:

struct S1 { name: ~str }

fn foo(name: &str) {
    let val = name.into_owned();
    let s = S1 { name: val };
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.