Erlang User's Guideでは、 send 演算子について次のように説明されています。
8.9 送信
Expr1 ! Expr2で指定されたプロセスにの値を
Expr2メッセージとして送信しますExpr1。の値Expr2は、式の戻り値でもあります。
Expr1pid、登録名(atom)、またはtuple{Name,Node}に評価される必要があります。NameはアトムでNodeあり、ノード名でもあり、アトムでもあります。
Expr1が名前として評価されたが、この名前が登録されていない場合、実行badarg時エラーが発生します。- pid が存在しないプロセスを識別したとしても、pid へのメッセージの送信は決して失敗しません。
- 分散メッセージ送信、つまり
Expr1、タプル{Name,Node}(または別のノードにある pid) に評価される場合も、失敗することはありません。
分散メッセージ送信の場合{Name,Node}、リモート ノードまたはプロセスのコードから、最初のアトムが何を表しているのかが明確ではありません。
あなたの助けに感謝します。