Yes, this is a smart workaround..... i hope we will have something better
in Rust but this a good answer to this need.

Regards,




On 07/09/13 22:11, Renato Lenzi wrote:

> Is it possibile, or will be possibile, to use default parameters and/or
> named parameters in Rust?
> In the docs i couldn't find anything about this (may be my fault...)
> Regards.
>
>  It is not possible currently, but there's an open bug [6973] and with
(quite) a bit of discussion. Two current methods for simulating them would
be defining wrapper functions for the common shortcuts, or passing the
default/named args as a struct and use a "functional record update" (FRU),
e.g.

  struct FooArgs {
     x: int,
     y: int,
     z: int,
  }

  static DEFAULT_FOO: FooArgs = FooArgs { x: 1, y: 2, z: 3 };

  /// a, b are compulsory, anything in rest is a default arg
  fn foo(a: uint, b: uint, rest: FooArgs) { ... }


  fn main() {
    // only defaults
    foo(10, 100, DEFAULT_FOO);

    // y = -3, defaults for the rest
    foo(10, 100, FooArgs { y: -3, .. DEFAULT_FOO }) // `..` indicates an FRU
  }

This one is unfortunately ugly, but it seems to get the job done.

Huon

[6973]: 
https://github.com/mozilla/**rust/issues/6973<https://github.com/mozilla/rust/issues/6973>
______________________________**_________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/**listinfo/rust-dev<https://mail.mozilla.org/listinfo/rust-dev>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to