fn main() {
let mut i=~100;
let (port2, chan2) :(Port<int>, Chan<int>) = stream();
chan2.send(i );
do spawn {
let i=port2.recv();
println(format!("==jcpark== i {:?} \n",i ));
}
}
如果let mut i =100
,则上述代码有效。但如果i
是一个拥有的盒子,它就不起作用。
你能告诉我怎么办吗?
答案 0 :(得分:3)
您已明确将流的类型定义为int
,因此您只能发送int
。如果您将其设置为~int
(通过将类型更改为(Port<~int>, Chan<~int>)
,那么您将能够发送~int
。
目前,stream
的通用参数是从port2
和chan2
的已定义类型推断出来的。实际上可以从send
和recv
来电推断,因此您实际上不需要在任何地方写int
或~int
。
fn main() {
let i = ~100;
let (port2, chan2) = stream();
chan2.send(i);
do spawn {
let i = port2.recv();
println!("==jcpark== i {:?} \n", i);
}
}