Kless wrote: > it will change the order of args. and this is not desirable, how to > solve it? It will not. In Ruby, the order of passed arguments is the order of received arguments, always. Your struct, as it was said, defines two useless local variables, and in fact passes them to the function. -- Posted via http://www.ruby-forum.com/.