デバッグのためにオブジェクトの中身を表示させるには (dump)

Go言語 (golang)

fmt.Printf などの書式付き出力で %#v という書式を使うと、ダンプされる。

import fmt

fmt.Printf("%#v\n", obj)

PHP

var_dump 関数 | PHP Manual
http://php.net/manual/ja/function.var-dump.php

var_export 関数 | PHP Manual
http://php.net/manual/ja/function.var-export.php

print_r 関数 | PHP Manual
http://php.net/manual/ja/function.print-r.php

var_export は循環参照を扱うことができない。循環参照があると、PHP Warning: var_export does not handle circular references とか PHP Fatal error: Nesting level too deep - recursive dependency? とか表示されて、処理が終わらなくなる。

Smarty

テンプレートに以下のように書けば、変数$aの内容がそのままHTMLにダンプされる。

{$a|@debug_print_var}

または

{$a|@var_dump}

Python

printでもある程度うまく表示してくれるが、 pprintのほうがよりある程度うまく表示してくれる。

from pprint import pprint

pprint(a)

Ruby

以下のようにすると、hogeオブジェクトの中身が標準出力に出力される。

p hoge

pメソッドはオブジェクトのinspectメソッドを呼び出して文字列表現を手に入れ、それを標準出力する。

これに対してputsメソッドto_sメソッドを呼び出して、それを標準出力する。

Perl

Data::Dumper でできる。

use utf8;
use Data::Dumper;

my $data = {'a' => 10, 'b' => 20, 'c' => [30, 31, 32], 'd' => 'あいうえお'};
print Dumper $data;

出力例

$VAR1 = {
          'c' => [
                   30,
                   31,
                   32
                 ],
          'a' => 10,
          'b' => 20,
          'd' => "\x{3042}\x{3044}\x{3046}\x{3048}\x{304a}"
        };

Data::Dumper | perldoc.perl.org
http://perldoc.perl.org/Data/Dumper.html

JavaScript

ブラウザで動くJavaScriptでは以下のように console.log を使うとChromeであればデベロッパーツールのConsoleにオブジェクトの詳細が表示される。他のブラウザでも同等の開発ツールに表示される。

console.log(obj);

表示する内容や操作性はブラウザによって異なる。

参考

console.logのブラウザ別動作検証 | ikekou.jp
http://ikekou.jp/blog/archives/2061

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク