- ベストアンサー
selectの意味
- selectの意味とは何でしょうか?
- selectの引数の取り方について混乱しています。
- 本に書かれているselectの説明とリファレンスマニュアルの説明が異なっています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
a = hoge.select(ARGS) の場合に、ARGSの部分が引数です。 ここは、「reads[, writes[, excepts[, timeout]]]」とかかれているので 以下の4種類の書き方ができます。 hoge.select(reads, writes, excepts, timeout) hoge.select(reads, writes, excepts) hoge.select(reads, writes) hoge.select(reads) また、aに代入される値が戻り値です。 ここには、 「戻り値は、timeout した時には nil を、そうでないときは 3 要素の配列を返し、その各要素が入力/出力/例外待ちのオブジェクトの配列です(指定した配列のサブセット)」 と書かれているので nil 若しくは [???,???,???]の形で値が代入されます。 これでご理解いただけるのではないでしょうか。
その他の回答 (3)
- Tacosan
- ベストアンサー率23% (3656/15482)
ん~, ごめん, 何をどう勘違いしているのか想像できない.... 「引数のとりかた」と「返り値」とは無関係だって, #2 に書かれてるよね. それなのに, なんで「[???[???[???]]]という返し方」と思えてしまうのか....
お礼
回答ありがとうございます。 本当におっしゃるとおりです。
- notnot
- ベストアンサー率47% (4900/10358)
引数の記述は、引数の型(クラス)を表していません。どのクラスのオブジェクトを引数に渡して良いかは、その下の文章で書いてあります。 #1の方の回答の通り、引数の欄に書いてある [ ] は、配列表記とは無関係で、省略可能を意味します。 また、メソッドの引数のクラスと、メソッドの返値のクラスは無関係で、返値がどのような値・クラスであるかは、下の文章に書いてあります。 >戻り値は、timeout した時には nil を、そうでないときは 3 要素の配列を返し、その各要素が入力/出力/例外待ちのオブジェクトの配列です(指定した配列のサブセット)。 という文章を見れば、3要素の配列を返すことはすぐにわかります。
お礼
回答ありがとうございます。 >戻り値は、timeout した時には nil を、そうでないときは 3 要素の配列を返し、その各要素が入力/出力/例外待ちのオブジェクトの配列です(指定した配列のサブセット)。 上の文章はわかるのですが、私の中で、3つの要素を返すといえば、[???,???,???]みたいなのをイメージしています。[???[???[???]]]という返し方でも3つの要素と言うのですか?
- Tacosan
- ベストアンサー率23% (3656/15482)
ここの [...] は「省略できる」ことを表しているはず.
お礼
回答ありがとうございます。 つまり、配列の要素であるreadsの要素として、writesがあり、writesの要素としてexceptsがある。そして、writes以下は省略が可能であるという理解でよいのでしょうか?
お礼
回答ありがとうございます。 まさに私が探していた回答です。 自分の国語力のなさを痛感しています。 ギャスケットの質問をした際、siffon9さんにアドバイスをいただいて、「たのしいRuby」を2回読みましたが、あと3回読もうと思います。