On 27/05/2014 18:27, Tommi wrote:
What is the meaning of this 'box ref foo' syntax found in the tutorial over at __http://doc.rust-lang.org/tutorial.html#references(Sorry for uglifying the link, my posts seem to get flagged as spam if they contain links) In short, it's: enum Shape { Sphere(Box<f32>) } let shape = Sphere(box 1.0f32); let r = match shape { Sphere(box ref radius) => *radius }; I thought the 'box' keyword meant: "allocate on heap and wrap into a Box". That doesn't make sense to me in the context of 'box ref radius'.
That’s what it means in an expression, but the arms of a 'match' statement start with patterns, not expressions. In a pattern, the 'box' keyword means deconstruct a Box<T> type to access the T inside. The 'ref' keyword (which can be used without 'box') means to take a &T reference rather than move the value.
-- Simon Sapin _______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
