- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:for 変数 in ・・・ の使い方について)
for文の使い方について質問
このQ&Aのポイント
- プログラムの一部にあるfor文の使い方について質問があります。
- 8行目のfor文の意味が分かりません。
- 8行目のfor文でsにns[0]を入れる意味がないと思いますが、なぜここでfor文が使われているのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>sにns[0]を入れると、<<を使っても変更されないから、意味がないと思うのですが、なぜここでforを使ってるんでしょうか? >ns[0]を消去するようなメソッドはforの下ではつかわれていないようにみえるのですが・・・。 このあたりの意味が不明ですが、ns には、nil(タイムアウト)でない場合、三要素の配列が返りますが、ns[0]が入力、ns[1]が出力、ns[2]が例外のそれぞれ配列になります。 この例だと、select時に、入力のみ引数に渡して、それも一要素だけ渡しているので、実際には、ns は nil もしくは [[server],[],[]] のどちらかしかあり得ません。従って、 for s in ns[0] if s == server ~ end end でなく、 s=ns[0][0] ~ でも同じです。 一般には、ns[0]が一要素とは限らないため、要素数だけ繰り返しが必要になりますし、出力待ちもしている場合はns[1]も見る必要があります。
お礼
回答ありがとうございました。 selectが3つの要素を持つ配列を返すということが理解できていなかったのが誤解の原因のようです。 助かりました。