История изменений
Исправление DarkEld3r, (текущая версия) :
В Haskell, например, всё гораздо сложнее. Там объединение типов невозможно.
Pазве как-то так сделать нельзя?
data Data = IntData Int | StringData String
Или речь о том, что не получится неявно приводить Int
к Data
? Не уверен, что это прям плохо.
Если брать раст, то там время жизни в типе. Например, как решить
Смотря, что нужно. Если вектор больше не нужен, то можно от дать его в поток. Если нужен доступ из разных потоков, то естественно нужно использовать механизмы синхронизации. Ну а если вдруг действительно нужно передать ссылку в поток и дождаться выполнения, то и это можно:
fn main() {
let v = vec![1, 2, 3];
thread::scope(|s| {
s.spawn(|_| {
println!("Here's a vector: {:?}", v);
});
})
.unwrap();
drop(v);
}
Исходная версия DarkEld3r, :
В Haskell, например, всё гораздо сложнее. Там объединение типов невозможно.
Pазве как-то так сделать нельзя?
data Data = IntData Int | StringData String
Или речь о том, что не получится неявно приводить Int
к Data
? Не уверен, что это плохо.
Если брать раст, то там время жизни в типе. Например, как решить
Смотря, что нужно. Если вектор больше не нужен, то можно от дать его в поток. Если нужен доступ из разных потоков, то естественно нужно использовать механизмы синхронизации. Ну а если вдруг действительно нужно передать ссылку в поток и дождаться выполнения, то и это можно:
fn main() {
let v = vec![1, 2, 3];
thread::scope(|s| {
s.spawn(|_| {
println!("Here's a vector: {:?}", v);
});
})
.unwrap();
drop(v);
}