# Add POSTARG support to rb\_scan\_args()

**URL:** <https://www.ruby-forum.com/t/add-postarg-support-to-rb-scan-args/160250>\
**Category:** Development\
**Created:** [February 13, 2009, 12:05pm UTC](https://www.ruby-forum.com/t/add-postarg-support-to-rb-scan-args/160250 "2009-02-13T12:05:02Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Akinori\_MUSHA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b782af/32.png) [@Akinori\_MUSHA](https://www.ruby-forum.com/u/Akinori_MUSHA)\
**Post date:** [February 13, 2009, 12:05pm UTC](https://www.ruby-forum.com/t/add-postarg-support-to-rb-scan-args/160250/1 "2009-02-13T12:05:02Z")

</div>

ã€€rb\_scan\_args()ã‚’POSTARGå¯¾å¿œã«ã™ã‚‹ãƒ‘ãƒƒãƒã§ã™ã€‚

```
rb_scan_args(argc, argv, "11*2", &first, &optional, &array, &penult, 

```

&last);

ã®ã‚ˆã†ã«ã€ \* ã®å¾Œã«æ•°å­—ã‚’æŒ‡å®šã§ãã¾ã™ã€‚

ã€€ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚‚ãŠãŠã–ã£ã±ãªã¾ã¾æ”¾ç½®ã•ã‚Œã¦ã„ã‚‹ã®ã§æ›´æ–°ã—ã¦ã¿ã¾ã—ãŸã€‚

---

<div class="post-metadata">

**Author:** ![Akinori\_MUSHA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b782af/32.png) [@Akinori\_MUSHA](https://www.ruby-forum.com/u/Akinori_MUSHA)\
**Post date:** [February 13, 2009, 12:07pm UTC](https://www.ruby-forum.com/t/add-postarg-support-to-rb-scan-args/160250/2 "2009-02-13T12:07:28Z")

</div>

2009/2/13 Akinori MUSHA [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> e$B!!e(Brb\_scan\_args()e$B$re(BPOSTARGe$BBP1~$K$9$k%Q%C%A$G$9!#e(B
> 
> rb\_scan\_args(argc, argv, “11\*2”, &first, &optional, &array, &penult, &last);
> 
> e$B$N$h$&$K!"e(B \* e$B$N8e$K?t;z$r;XDj$G$-$^$9!#e(B
> 
> e$B%I%-%e%a%s%H$b$_$_$6$C$Q$J$^$^J|CV$5$l$F$$$k$N$G99?7$7$F$\_$^$7$?!#e(B

e$B$“!”:G8e$Ne(B rb\_raise()  
e$B$N%a%C%;!\<%8$N$\*?,$O%G%P%C%0%3!\<%I$J$N$GL5;k$7$F$/$@$5$$!#e(B

---

<div class="post-metadata">

**Author:** ![Akinori\_MUSHA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b782af/32.png) [@Akinori\_MUSHA](https://www.ruby-forum.com/u/Akinori_MUSHA)\
**Post date:** [February 16, 2009, 7:34am UTC](https://www.ruby-forum.com/t/add-postarg-support-to-rb-scan-args/160250/3 "2009-02-16T07:34:59Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:37995] Add POSTARG support to rb\_scan\_args()”  
on Fri, 13 Feb 2009 20:01:53 +0900, Akinori MUSHA  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|e$B!!e(Brb\_scan\_args()e$B$re(BPOSTARGe$BBP1~$K$9$k%Q%C%A$G$9!#e(B  
|  
| rb\_scan\_args(argc, argv, “11\*2”, &first, &optional, &array, &penult, &last);  
|  
|e$B$N$h$&$K!"e(B \* e$B$N8e$K?t;z$r;XDj$G$-$^$9!#e(B

e$B%3%\_%C%H$7$F$/$@$5$$!#e(B

|e$B!!%I%-%e%a%s%H$b$_$_$6$C$Q$J$^$^J|CV$5$l$F$$$k$N$G99?7$7$F$\_$^$7$?!#e(B

e$B$3$A$i$O$b$&$7$F$$$?$@$$$?$h$&$G$9$M!#$"$j$,$H$&$4$6$$$^$9!#e(B

Method#parameterse$B$,@5$7$$7k2L$rJV$;$k$h$&$Ke(Brb\_define\_method  
e$B$Ge(B scan\_args e$BAjEv$r;XDj$G$-$k$h$&$K$7$?$$$N$@$,e(B…e$B!#e(B

---

<div class="post-metadata">

**Author:** ![Akinori\_MUSHA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b782af/32.png) [@Akinori\_MUSHA](https://www.ruby-forum.com/u/Akinori_MUSHA)\
**Post date:** [February 16, 2009, 9:48am UTC](https://www.ruby-forum.com/t/add-postarg-support-to-rb-scan-args/160250/4 "2009-02-16T09:48:34Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:38026] Re: Add POSTARG support to  
rb\_scan\_args()”  
on Mon, 16 Feb 2009 17:35:48 +0900, “Akinori MUSHA”  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|\> Method#parameterse$B$,@5$7$$7k2L$rJV$;$k$h$&$Ke(Brb\_define\_method  
|\> e$B$Ge(B scan\_args e$BAjEv$r;XDj$G$-$k$h$&$K$7$?$$$N$@$,e(B…e$B!#e(B  
|  
|rb\_scan\_arg() e$BAjEv$r%a%=%C%IDj5A!&8F=P5!9=$KAH$_F~$l$F$7$^$&$Y$-e(B  
|e$B$J$s$G$9$+$M!#$7$P$79M$($F$_$^$7$?$,!“$K$o$+$K$O%V%m%C%/$N2\>0z?te(B  
|e$B%j%9%H$d\>-Mh$N%-!\<%o!\<%I0z?t$NI=8=J}K!$K$D$$$F%”%$%G%"$,$^$H$^$je(B  
|e$B$^$;$s$G$7$?!#e(B

aritye$B$de(Bparameterse$B$,$h$j@5$7$$\>pJs$rJV$9$?$a$K$OAH$\_F~$l$F$7e(B  
e$B$^$C$?J}$,$“$j$,$?$$$G$9$M!#$”$s$^$j?\<$/9M$($F$$$J$$$s$G$9$,!"e(B  
e$B$?$H$($Pe(Brb\_define\_methode$B$N:G8e$N0z?t$KJ8;zNs$rEO$9$He(B  
scan\_argse$BAjEv$K$J$k$h$&$J@\_7W$O2DG=$G$O$J$$$+$H;W$$$^$9!#e(B

---

<div class="post-metadata">

**Author:** ![Akinori\_MUSHA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b782af/32.png) [@Akinori\_MUSHA](https://www.ruby-forum.com/u/Akinori_MUSHA)\
**Post date:** [February 16, 2009, 9:36am UTC](https://www.ruby-forum.com/t/add-postarg-support-to-rb-scan-args/160250/5 "2009-02-16T09:36:15Z")

</div>

At Mon, 16 Feb 2009 15:32:30 +0900,  
matz wrote:

> In message “Re: [ruby-dev:37995] Add POSTARG support to rb\_scan\_args()”  
> on Fri, 13 Feb 2009 20:01:53 +0900, Akinori MUSHA [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:
> 
> |ã€€rb\_scan\_args()ã‚’POSTARGå¯¾å¿œã«ã™ã‚‹ãƒ‘ãƒƒãƒã§ã™ã€‚  
> |  
> | rb\_scan\_args(argc, argv, “11\*2”, &first, &optional, &array, &penult, &last);  
> |  
> |ã®ã‚ˆã†ã«ã€ \* ã®å¾Œã«æ•°å­—ã‚’æŒ‡å®šã§ãã¾ã™ã€‚
> 
> ã‚³ãƒŸãƒƒãƒˆã—ã¦ãã ã•ã„ã€‚

å…¥ã‚Œã¾ã—ãŸã€‚

> |ã€€ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚‚ãŠãŠã–ã£ã±ãªã¾ã¾æ”¾ç½®ã•ã‚Œã¦ã„ã‚‹ã®ã§æ›´æ–°ã—ã¦ã¿ã¾ã—ãŸã€‚
> 
> ã“ã¡ã‚‰ã¯ã‚‚ã†ã—ã¦ã„ãŸã ã„ãŸã‚ˆã†ã§ã™ã­ã€‚ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚

ã¯ã„ã€ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã®æ”¹å–„ã®ã¿å…ˆã«å…¥ã‚Œã¦ã„ã¾ã—ãŸã€‚

> Method#parametersãŒæ­£ã—ã„çµæžœã‚’è¿”ã›ã‚‹ã‚ˆã†ã«rb\_define\_method  
> ã§ scan\_args ç›¸å½“ã‚’æŒ‡å®šã§ãã‚‹ã‚ˆã†ã«ã—ãŸã„ã®ã ãŒ…ã€‚

rb\_scan\_arg() ç›¸å½“ã‚’ãƒ¡ã‚½ãƒƒãƒ‰å®šç¾©ãƒ»å‘¼å‡ºæ©Ÿæ§‹ã«çµ„ã¿å…¥ã‚Œã¦ã—ã¾ã†ã¹ã  
ãªã‚“ã§ã™ã‹ã­ã€‚ã—ã°ã—è€ƒãˆã¦ã¿ã¾ã—ãŸãŒã€ã«ã‚ã‹ã«ã¯ãƒ–ãƒ­ãƒƒã‚¯ã®ä»®å¼•æ•°  
ãƒªã‚¹ãƒˆã‚„å°†æ¥ã®ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰å¼•æ•°ã®è¡¨ç¾æ–¹æ³•ã«ã¤ã„ã¦ã‚¢ã‚¤ãƒ‡ã‚¢ãŒã¾ã¨ã¾ã‚Š  
ã¾ã›ã‚“ã§ã—ãŸã€‚
