質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

1416閲覧

【RUBY】 <<-HOGE xxxxxxxxxxxx HOGE という文字列の入力方法について

nimbus1978

総合スコア14

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2015/05/07 14:24

編集2015/05/07 14:44

とあるrubyの練習問題の中に

<<- HOGE.chomp
abcd
abcd
abcd
HOGE

=> “abcd\nabcd\nabcd”

という文字列の入力方法を見かけました。
調べてみても、Stringクラスに <<- というメソッドが見つかりませんでした。
chompの付いている位置なども、しっくりせず。構文が理解できません。
このメソッドについてお分かりの方がいらっしゃいましたら、何卒ご教示頂けます幸いです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ヒアドキュメントというものです。
http://docs.ruby-lang.org/ja/1.9.3/doc/spec=2fliteral.html

<<'識別子'で文字列の取り込み開始となり、次に'識別子'の文字列が出てくるまで文字列を取り込み続けるというものです。
chompは対象文字列の末尾にある改行文字を取り外すメソッドです。なので、質問にある文を入力すると、

lang

1"abc\nabc\nabc"

となります。
#私の環境では最後の改行文字が取り除かれました。
#もう一度試してみてはどうでしょう

投稿2015/05/07 14:53

archiver

総合スコア1557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

archiver

2015/05/07 14:55

一足遅かったみたいです。
nimbus1978

2015/05/07 14:58

質問している途中で、たしかに最後の\nが取り除かれていることに気づいて質問を書き換えてしまいました。 失礼しました。 勉強になりました。ご回答、ありがとうございました。
guest

0

ベストアンサー

<< というのは、文字列リテラルの書き方の一つです。"~~~" と同じ目的の物。
マニュアル:ヒアドキュメント
この場合、"abcd\nabcd\nabcd\n"と同じです。
なお、タイプミスだと思いますが、-の後に空白を入れてはいけません。

chompを付けないと"abcd\nabcd\nabcd\n"と表示され、chompを付けると"abcd\nabcd\nabcd"と最後の\nが無くなります。chompの意味はマニュアルを見てください。

投稿2015/05/07 14:44

otn

総合スコア84499

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nimbus1978

2015/05/07 14:55

行指向文字列リテラルっていうんですね。 見つかって、すっきりしました。 chompは、 最後の\nだけを外すんですね。 ご教授ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問