Re[14]: Развитие Rust
От: cl-user  
Дата: 27.01.14 16:39
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Вообще, я тебя обманул, функции и замыкания вполне себе взаимозаменяемые, и в действительности просто ключевое слово в очередной раз переименовали


Спасибо! Сейчас попробую. Я видел в доках proc, но меня смутило, что такое замыкание может вызываться "единожды". Или имелось в виду — только в одном месте?

KP>struct S1 { name: ~str }

KP>fn foo(name: &str) {
KP>    let val = name.into_owned();
KP>    let s = S1 { name: val };
KP>}
KP>


ааааа, into_owned()!!!... пойду ещё раз гляну документацию

И сразу ещё вопрос:
внутри функции создаю структуру и передаю указатель на неё в сишную либу (а-ля регистрация клбэков):
pub struct MyCallback<'a> { ... }
pub fn f1(...) {
    let rcs = ~MyStruct { ... };
    unsafe { __ext_func(to_unsafe_ptr(rcs), ...); }
}
После завершения этой функции rcs дропнется? Судя по аварийному завершению при попытке в другой функции восстановить структуру из пришедшего указателя, это так.
Как "заморозить" структуру?

Пытаюсь создать static вектор верхнего уровня модуля для "хранения" подобных структур — не получается Как?!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.