ファットカンマ(Rubyではハッシュロケット、JavaScriptではファットアローとも呼ばれます)は、関数呼び出し(または定義)において、通常はカンマが使用される位置に現れる構文構造です。元々の用法はALGOL 60の「)文字:(」構造を指します。新しい用法は、一部のプログラミング言語に存在する「 」演算子を指します。これは主にPHP、Ruby、Perlプログラミング言語と関連付けられており、ハッシュを宣言するために使用されます。ハッシュ内のキーと値のペアをカンマではなくファットカンマでバインドすることは、Perlの優れた慣用例と考えられています。[ 1 ] CoffeeScriptとTypeScriptでは、ファットカンマはバインドされる関数を宣言するために使用されます。[ 2 ] [ 3 ]=>this
# Perl におけるファットコンマの典型的で慣用的な使用法my %hash = ( first_name => "Larry" , last_name => "Wall" , );ALGOLの「ファットコンマ」は意味的にコンマと同一です。[ 4 ]特に、文字列が使用されているかどうか、およびその内容は、関数の定義とその使用法の間で一致する必要はありません。以下は同等です
S(s-5, T, P) S(s-5) t: (T) p: (P) S(s-5) 温度: (T) 圧力: (P) 「ファットコンマ」は、その左側の単語を文字列として解釈することを強制します。[ 5 ]
したがって、これは厳密な設定では実行時エラーが発生します (ベアワードは許可されません)。
%bad_example = ( bad_bareword , "それほどクールではない" );次のようなファットコンマの使用は合法かつ慣用的です。
%good_example = ( converted_to_string => "非常に僧侶っぽい" );これは、トークンがハッシュキーの代入において有効な引数converted_to_stringである文字列リテラルに変換されるためです。結果として、連想配列の名前と値のペアがより強調され、コードが読みやすくなります。 "converted_to_string"
PHPでは、ファットコンマは二重矢印と呼ばれ、配列を宣言する際にキーと値の関係を示すために使用されます。Perlとは異なり、二重矢印はそれより前にあるものを単なる単語として扱うのではなく、評価します。したがって、二重矢印で囲まれた定数は評価されます。
$array = array ( "name" => "PHP" 、"influences" => array ( "Perl" 、"C" 、"C++" 、"Java" 、"Tcl" ));Rubyでは、ファットカンマはハッシュを作成するためのトークンです。Ruby 1.9では、シンボルをベアワードとして使用するための特別な構文が導入されました。[ 6 ] [ 7 ] Rubyでは、ファットカンマはハッシュロケットと呼ばれます。[ 7 ]
# 古い構文old_hash = { :name => 'Ruby' , :influences => [ 'Perl' , 'Python' , 'Smalltalk' ] }# 新しい構文 (Ruby >= 1.9) new_hash = { name : 'Ruby' , influences : [ 'Perl' , 'Python' , 'Smalltalk' ] }太い矢印はJavaScript、[ 8 ]やC# [ 9 ]で単一式の無名関数を 宣言するために使用されます。
キー/値または名前/値のペアのリストを作成するときは、キーと対応する値を「ファットコンマ」(=>)で接続してください