基本的な質問ですみません。
Rubyを勉強中の者です。

---------------------
a=1, 2, 3
p a.join(",")
#=> "1, 2, 3"
---------------------

あるテキストで上記のプログラムが紹介されていたのですが、1行目の意味がよくわかりません。

これは配列の
a=[1, 2, 3]
と同じでしょうか?

動作確認したところ、どちらも同じ結果なので、やはり配列のことかなと思っています。
でも調べても、配列の[]を省略できるという話は見当たりません(調べ方が悪いのかもしれませんが)。

よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

いちおう「多重代入」という形でサポートされているようですね.



公式の日本語マニュアル
https://docs.ruby-lang.org/ja/latest/doc/spec=2f …
の文章を読んでもそうとは解釈できないんだけど, 例では確かにそうなってるからそうなんだろうなぁ.
    • good
    • 0
この回答へのお礼

ありがとうございます。
たしかに教えていただいたリンク先(下記)を見ると、多重代入で間違いないようですね。

-----------------------
foo, bar = 1, 2, 3 # foo = 1; bar = 2
foo = 1, 2, 3 # foo = [1, 2, 3]
*foo = 1, 2, 3 # foo = [1, 2, 3]
-----------------------

でも「左辺の要素の数よりも 配列の要素の数の方が多い場合には、余った要素は無視されます」とあるのに、左辺の要素が一つしかない場合は、すべての要素が一つの配列として代入されてしまうのは不思議ですね。
勉強になりました。感謝いたします。

お礼日時:2017/04/14 10:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QRuby 2.2.3 [x64]について

Rubyのコマンドプロンプト上での実行についての質問です。さくらエディタを使ってます。
現状のRubyではgets.chompは使えないのでしょうか?
入力を受けたい場合はどうすればいいのでしょうか?
 name="名前"
 puts "#{name}です"
どいった変数や、if,日本語などは使えないのでしょうか?
それらの使われたファイルを実行しようとエラーします。
どうすればいいのでしょうか?
おねがいします。

Aベストアンサー

そのエラーになるソースコードと具体的なエラーメッセージを載せてください。
「エラーします」だけでは、あらゆる可能性が考えられるので、アドバイスのしようがありません。


例えば、日本語を使う場合、マジックコメントを書く等の方法で「スクリプトがどの文字コードで書かれているか」を指定する必要があります。
http://docs.ruby-lang.org/ja/2.2.0/doc/spec=2fm17n.html
これを忘れると
EncodingCompatibilityError: incompatible character encodings: XXXXXX and US-ASCII
といったエラーになります。

ソースコードとエラーメッセージがあれば、上記が原因かどうか判断できます。
ですが、どちらも無ければ、別の原因を排除できません。

Q[中級]携帯メールで絵文字付きメールを送りたい

2年程独学でrailsではある程度の物は作れるようになってきましたが、
3つの質問をさせてください。
1)携帯メールに絵文字を表示できるようにしたい。良いプラグインはないか?
文字コードの知識が無くて恐縮なのですが、3キャリア対応で絵文字付きメール
を送信したいのですが、どうもうまく絵文字部分のコードの置換が出来ません。
どのような方法でも結構です。
mobile.html.erb
mobile_docomo_html.erb
など振り分けて送信するなど。。(この場合は、テキストボックス内の絵文字はどこでconvするのでしょうか?)
プラグインがなくても改良方法のヒントでもいただけると有り難いです。
ここを勉強した方が良いなど。

2)PCからテキストボックスで絵文字入力させたい。プラグインは無いでしょうか。
wysiwyg程豊富な機能はいらなく、絵文字のみでよいのですが、良いものはありますでしょうか?ajax製でも結構です。
少し調べたのですが、情報が古かったりして、どれがメジャーなのかがわからないものでして。

3)Rails中級程度の質問で的確に教えて頂ける場所は、ここ以外にあるのでしょうか?
わかる項目のみで結構です。教えて頂けると大変助かります。
どうぞよろしくお願いいたします。

2年程独学でrailsではある程度の物は作れるようになってきましたが、
3つの質問をさせてください。
1)携帯メールに絵文字を表示できるようにしたい。良いプラグインはないか?
文字コードの知識が無くて恐縮なのですが、3キャリア対応で絵文字付きメール
を送信したいのですが、どうもうまく絵文字部分のコードの置換が出来ません。
どのような方法でも結構です。
mobile.html.erb
mobile_docomo_html.erb
など振り分けて送信するなど。。(この場合は、テキストボックス内の絵文字はどこでconvするのでしょう...続きを読む

Aベストアンサー

3)のみ回答します。
rubyのメーリングリストに参加されてはいかがででしょうか。
わたくしもこれに参加していますが、かなり的確な答えが返ってきます。
メーリングリストの種類もいくつかありますが、ruby-list(日本語)
でよいかと思います。

参考URL:http://www.ruby-lang.org/ja/community/mailing-lists/

QRuby interpreter (CUI) 2.2.3 [x64]について

windows8でRuby interpreter (CUI) 2.2.3[x64]をダウンロードしました。
puts "hello world"とさくらエディタで作りファイル名をhello.rbで保存し、
コマンドプロンプトで ruby hello.rbと打つと
コマンドプロンプト上ではhelloと出てきて実行できています。
ですが、helloのファイルを直接クリック開こうとすると一瞬開いてすぐ落ちます。
あるプログラミング学習サイトでダウンロード(英単語クイズ)は途中でおちてしまいます。
ファイルのアイコンはどちらもRubyのマークになっています。

また開いたときフッター?一番上?はC:¥Ruby22-x64\bin\ruby.exeとなっています
exeの拡張子に変更しないと実行できないのでしょうか?

Ruby始めたばかりです。お願いします。

Aベストアンサー

おそらく、次のような動作になっています。

1.hello.rbをダブルクリック

2.関連付けによって「 ruby hello.rb 」を実行することにする

3.コマンドライン用なので、コマンドプロンプト画面が表示される

4.「 ruby hello.rb 」が実行される

5.コマンドプロンプト画面に「hello world」と出力される

6.「 ruby hello.rb 」が終了する

7.呼び出したプログラムが終了したので、コマンドプロンプト画面も終了する

これまでの実行時間が一瞬なので、「一瞬開いてすぐ落ち」たように見えます。


これは、rubyに限らず、他のもの(BATファイル、コマンドライン用のVBScript, Cで作ったコマンドライン用のexe等)でも発生します。

対策の一つは
6.で終了しないように、プログラムに最後で入力待ち等を入れる
なのですが、普通に使いたいときでも一々止まってしまって不便です。

コマンドプロンプトから使うのが無難です。


ダブルクリックでの実行は、画面表示を伴わない(実行結果をファイルに出力するとか)の場合にした方がよいでしょう。

おそらく、次のような動作になっています。

1.hello.rbをダブルクリック

2.関連付けによって「 ruby hello.rb 」を実行することにする

3.コマンドライン用なので、コマンドプロンプト画面が表示される

4.「 ruby hello.rb 」が実行される

5.コマンドプロンプト画面に「hello world」と出力される

6.「 ruby hello.rb 」が終了する

7.呼び出したプログラムが終了したので、コマンドプロンプト画面も終了する

これまでの実行時間が一瞬なので、「一瞬開いてすぐ落ち」たように見えます。


これは、ru...続きを読む

QRuby interpreter (CUI) 2.2.3p173 [x64-mingw32]について

windows8でRuby interpreter (CUI) 2.2.3[x64]をダウンロードしました。
puts "hello world"とさくらエディタで作りファイル名をhello.rbで保存し、
コマンドプロンプトで ruby hello.rbと打つと
No such file or dictionary--- と出てきて実行されません。
環境設定できちんとpathもとうしました。なぜできないのかわかりません。

また、さいたま市にはプログラミングを勉強しているコミュニティーなどはあるでしょうか?
周りにプログラミングを勉強している知り合いがいないもので

よろしくお願いします。

Aベストアンサー

コマンドプロンプト上で、
現在の場所が C:\User\--- ですが
そこに、hello.rb が無いです。

hello.rbを保存したフォルダ(ディレクトリ)にCDコマンドで移動してください。

hello.rb が、C:\aaa\bbb\cccフォルダにある場合
cd C:\aaa\bbb\ccc と入力して下さい。
 (注: cdの次にスペースがあります)

QRubyでCSV.read()で二次元配列に読み込むと配列の要素はすべて文字列型になるのでしょうか

CSVファイルに下記のように商品の単価を記録しておいて、二次元配列に読み込んだところ、配列のどの要素もString型になっていました。数字を"(コーティション)で囲んでいなくても、文字として扱われるのでしょうか?
<CSVファイルの内容>
"りんご",100
"みかん",25

Aベストアンサー

>数字を"(コーティション)で囲んでいなくても、文字として扱われるのでしょうか?
文字として、扱われます。もし、その箇所を数値型(Integer型、又はFloat型)にしたい場合は
明示的に、自分で変換する必要があります。
以下、サンプルリストです。
CSVファイルの内容(CSV.txt)
------------------------------------
"りんご",100,"A",9.3
"みかん",25,"B",6.687
-------------------------------
スクリプトの内容
-----------------------------
# coding:WINDOWS-31J
#
require "csv"

arrs = CSV.read("csv.txt")
new_arrs = arrs.map { |a,b,c,d| [a,b.to_i,c,d.to_f] }
p arrs
p new_arrs
---------------------------------------------
実行結果
[["りんご", "100", "A", "9.3"], ["みかん", "25", "B", "6.687"]]
[["りんご", 100, "A", 9.3], ["みかん", 25, "B", 6.687]]
ーーーーーーーーーーーーーーーーーーーーーーー
データを左からA列,B列,C列,D列
とすると、B列をInteger型に変換、D列をFloat型に変換しています。
変換時、データが数字でないと、例外が発生しますので、ご注意ください。

>数字を"(コーティション)で囲んでいなくても、文字として扱われるのでしょうか?
文字として、扱われます。もし、その箇所を数値型(Integer型、又はFloat型)にしたい場合は
明示的に、自分で変換する必要があります。
以下、サンプルリストです。
CSVファイルの内容(CSV.txt)
------------------------------------
"りんご",100,"A",9.3
"みかん",25,"B",6.687
-------------------------------
スクリプトの内容
-----------------------------
# coding:WINDOWS-31J
#
require "csv"

arrs...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報