Здравствуйте, 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 };
}