11
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

各言語におけるヒアドキュメント記述方法

Posted at

ヒアドキュメント

複数行に渡る文字列を一度で定義できる記法 。

なにがいいのか?

例えばphpで改行付きの文字列を書くとき↓のように書く人をみたことないですか?

$str = "aaa" + PHP_EOL + "bbb" + PHP_EOL + PHP_EOL  + "ccc"
(PHP_EOLは\nのこと)

とか

$str = "{$piyo}\n\n{$hoge}\n{$fuga}"

とか

よみずらいし、改行つけ忘れそう、結局どんな文字列になるのかわからん・・。
それが多分解消される記述方法じゃないだろうか!

何が良くないのか

インデントが汚く?なります。
※インデントをいれようとすると、それは空白(スペース)になるので。

HowTo

PHP

EOSの部分は任意(下記は一例 EndOfStringの略)

$str = <<<EOS
AAA
BBB
CCC
EOS;

Ruby

EOSの部分は任意

str=<<"EOS"
AAA
BBB
CCC
EOS

Bash

EOSの部分は任意

str << EOS
AAA
BBB
CCC
EOS

Perl

EOSの部分は任意

my $str = <<'EOS';
AAA
BBB
CCC
EOS

Python

pythonは若干他と違うようでダブルクオートx3で囲むようです。
こちらの記法はコメントを書くときにもよくみますね。

str = """
AAA
BBB
CCC
"""

Java

ないので、文字連結はStringBuilderとかつかうのですかね。

まとめ

  • 言語によって若干の差はあるものの基本似たような記述ですね。
  • スクリプト系には基本あるみたいですね。C++とかScalarとかあるのかな?機会があれば調べます。
  • 個人的にはすごく見やすくて好きです。よく使います。そしてこれからも。
11
9
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?