I would think:
let mut ps = *Points* {xs:~[1], ys:~[1]};
let mut ps : *Points<uint>* = *Points* {xs:~[1], ys:~[1]};
In Haskell-speak, there is a different between the "type" and the
"constructor", even though by convention they are given the same name.
On Wed, Nov 6, 2013 at 9:46 AM, spir <[email protected]> wrote:
>
> I can write this:
> struct Points {xs:~[uint], ys:~[uint]}
> fn main () {
> let mut ps = Points{xs:~[1u], ys:~[1u]};
> ...
> }
>
> But I cannot write that:
> struct Points<T> {xs:~[T], ys:~[T]}
> fn main () {
> let mut ps = Points<uint>{xs:~[1u], ys:~[1u]};
> ...
> }
>
> In the second case, I get the error:
> sparse_array.rs:106:31: 106:32 error: expected one of `; }` but found `:`
> sparse_array.rs:106 let mut ps = Points<uint>{xs:~[1u], ys:~[1u]};
> ^
>
> Sorry to bother you with that, I find myself unable to find the right
> syntactic schema (and could not find any example in any doc online). I'm
> blocked, stupidly.
>
> spir@ospir:~$ rust -v
> rust 0.8
> host: x86_64-unknown-linux-gnu
>
>
> Also, I have a general problem with writing struct instances with the type
> apart; meaning, without any type param, I get the same error:
> struct Points {xs:~[uint], ys:~[uint]}
>
> fn main () {
> let mut ps : Points = {xs:~[1], ys:~[1]};
> ...
> }
> ==>
> parse_array.rs:106:28: 106:29 error: expected one of `; }` but found `:`
> sparse_array.rs:106 let mut ps : Points = {xs:~[1], ys:~[1]};
> ^
>
> More generally, I don't know why there are 2 syntactic schemas to define
> vars. I would be happy with the latter alone (despite the additional pair
> of spaces) since it is more coherent and more general in allowing
> temporalily uninitialised declarations.
>
> Denis
> _______________________________________________
> Rust-dev mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/rust-dev
>
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev