From: Yasuhiro Fukuma Date: 2000-10-16T19:32:29+09:00 Subject: [ruby-list:25473] Re: === of Range ----Security_Multipart(Mon_Oct_16_19:32:12_2000_809)-- Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit 福間@福岡 です。 記事 <200010161005.TAA23853@hanare00.math.sci.hokudai.ac.jp> にて、 gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro) さんは書きました: > >% ruby -e '(1..5 === 3) ? puts("OK") : puts("NG")' > >NG > というか、大原さんの書き方でエラーが出ないのはバグっぽいですね。 > > % ruby -e '(1..5 === 3)' > -e:1: bad value for range (ArgumentError) 条件式の条件部分ですから、Range objectの生成ではなくて いったん $. の値が 1 になったら、その瞬間から「5 === 3」という式が 偽である間は真 という意味に解釈されているのでしょう(ここでは、そもそも前者が成立して いないので偽)。 while gets if 10 .. /^end/ print $_ # 10行めから end で始まる行までを表示 end end なんかの .. と同じ意味。 # わたしはあんまりこういう書き方はしませんけど。 --- FUKUMA Yasuhiro (福間 康弘) as Yasu.F @ Kitakyushu.Fukuoka.Japan Web site: http://www.bsdclub.org/~yasuf/ PGP fingerprint = 17 25 8A F3 99 E5 7E 19 C0 EA 6E 03 8A C3 CE F0 “いちばん苦手な言語は、日本語です。” ----Security_Multipart(Mon_Oct_16_19:32:12_2000_809)-- Content-Type: Application/Pgp-Signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: PGPfreeware 5.0i for non-commercial use MessageID: Oy2WB1Cv5PAEzz2DEkSr9hmEdZiRNn36 iQCVAwUAOerZNQqHABIYLe0FAQFs3gP5AVkk46+5fjBoxpaYF16QqBP+DIXFFjmi xDJsyMil3qCxslwzStNy814KCcdwSGcdC2yghOcuyLDFBBg9kPFO/De1y9xE392M HMfSWtBEniV9LsTk08vM5rpaqiNJsopuk2IeHbtvzFeLhpjV1MX6QQjJoCfd8xhK jjdWPnKVs8A= =3V5Z -----END PGP SIGNATURE----- ----Security_Multipart(Mon_Oct_16_19:32:12_2000_809)----