[#43588] CGIが実行できない(open failed) — Maehara Masahide (前原正英) <maehrm@...>
前原と申します。
9 messages
2007/06/06
[#43602] Performance 比較 Ruby 1.8.6 v.s. JRuby-1.0.0RC3 on Rails — "HISAMATSU, Hiroshi" <hiroshi.hisamatsu@...>
FMSC) 久松と申します。こんばんは
6 messages
2007/06/08
[#43608] Ruby 1.8.6-p36 released — Urabe Shyouhei <shyouhei@...>
Hi all,
12 messages
2007/06/09
[#43615] Re: Ruby 1.8.6-p36 released
— Takahiro Kambe <taca@...>
2007/06/13
こんばんは。
[#43616] Re: Ruby 1.8.6-p36 released
— Nobuyoshi Nakada <nobu@...>
2007/06/14
なかだです。
[#43617] Re: Ruby 1.8.6-p36 released
— Takahiro Kambe <taca@...>
2007/06/14
In message <200706140106.l5E165qW030582@sharui.nakada.kanuma.tochigi.jp>
[#43618] Re: Ruby 1.8.6-p36 released
— Nobuyoshi Nakada <nobu@...>
2007/06/14
なかだです。
[#43619] Re: Ruby 1.8.6-p36 released
— Takahiro Kambe <taca@...>
2007/06/14
In message <200706140229.l5E2Tt5m025493@sharui.nakada.kanuma.tochigi.jp>
[#43626] Re: Ruby 1.8.6-p36 released
— Urabe Shyouhei <shyouhei@...>
2007/06/18
卜部です。
[#43660] C++ extension problem with 1.8.6-p36 (was Re: Re: Ruby 1.8.6-p36 released)
— Takahiro Kambe <taca@...>
2007/06/24
In message <46765550.9070800@ruby-lang.org>
[#43612] [ANN] 第16回 Ruby勉強会@関西(運営:Ruby 関西) — "shoko.m" <shoko-m@...>
まんたにと申します。
1 message
2007/06/13
[#43613] [ANN] 第16回 Ruby勉強会@関西(運営:Ruby 関西) — "shoko.m" <shoko-m@...>
まんたにと申します。
1 message
2007/06/13
[#43627] SWIGとRuby/DLの使い方について — "takeru sasaki" <sasaki.takeru@...>
はじめまして、佐々木ともうします。
7 messages
2007/06/18
[#43637] case when 〜 end 構文での and/or/not 演算子について — "M.Fujii" <boochang@...4.kcn.ne.jp>
藤井と申します。
7 messages
2007/06/20
[#43646] RUBYLIBの影響を排除したい — keiichi matsunaga <ma2@...>
松永です。
6 messages
2007/06/22
[ruby-list:43637] case when 〜 end 構文での and/or/not 演算子について
From:
"M.Fujii" <boochang@...4.kcn.ne.jp>
Date:
2007-06-20 07:47:21 UTC
List:
ruby-list #43637
藤井と申します。
ruby-list の皆さま初めまして
case の式を省略する構文を用いる場合に when 節の条件式で and/or/not 演算
子を使いたい場合にどうすべきか分からなくて困っています。
3 つ以上の条件分岐においてelsif を使うと、以下のように条件式のカラム
が揃わないのが何となく違和感を感じます。
if a == 0 # 条件式の開始が 4 カラム目
puts 'a'
elsif b == 0 # 条件式の開始が 7 カラム目
puts 'b'
end
そこで、以下のように case での式を省略した形式を使いたいと思っています。
case
when a == 0
puts 'a'
when b == 0
puts 'b'
end
しかし、式を省略した case を用いる場合に困ったことがあります。それは、
以下のように when 節に and や or を用いた式が使えないということです。
$ ruby -v
ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
$ cat case.rb
a = b = true
case
when a and b
puts 'a'
end
$ ruby case.rb
case.rb:3: syntax error, unexpected kAND, expecting kTHEN or ':' or '\n' or ';'
when a and b
^
case.rb:5: syntax error, unexpected kEND, expecting $end
以下のように括弧で囲んだり and ではなく && を用いた場合には問題なく使え
ています。
<< 括弧で囲んだ場合 >>
$ cat case2.rb
a = b = true
case
when (a and b)
puts 'a'
end
$ ruby case2.rb
a
<< && を使った場合 >>
$ cat case3.rb
a = b = true
case
when a && b
puts 'a'
end
$ ruby case3.rb
a
式を省略した case で and, or, not の必要な条件式を適用する場合、ruby
スクリプトとして一般的に用いられているスタイルではどうしているのかを教
えて下さい。
(1) and, or, not の使用を避け、&&, ||, ! を使用する。
(2) "when (a and b)" のように括弧を適用する。
(3) case when 〜 end のような構文を使わず、普通に if 〜 elsif 〜 end
を用いる。
(4) 上記以外の何か。
また、"when a and b" のような記述が受理されるように構文を見直していただ
ければ幸いです。
以上、宜しくお願いします。
--
藤井 正行 / Masayuki FUJII