🙌

アロー演算子「->」・「=>」と「<=」が紛らわしい

2023/03/26に公開

1.はじめに

普段私は.NETでの開発をしています。そこでC#のラムダ式で使用する演算子「=>」を比較演算子「<=」と間違ってしまうことがあり、紛らわしいなと思いこの記事を書きました。
似てません?
「<=」
「=>」
「->」
...似てますよね。

2.呼称

「=>」はラムダ演算子ではない!?


ラムダ式で使用するため、ラムダ演算子と呼んでいました。しかし、アロー演算子と呼ぶそうです。検索したところ、Microsoftではラムダ演算子と呼んでいました。


https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/lambda-operator

ただ基本的にはアロー演算子と呼んだほうがよさそうですね。

3.他の言語での役割

Java:

「=>」は使用されません。
「->」は、ラムダ式で使用されます。

C#:

「=>」は、ラムダ式やLINQ式で使用され、式の左側の引数を右側の式にマップします。
「->」は、ポインター演算子として使用され、ポインターが指すオブジェクトのメンバーにアクセスします。

C++:

「=>」は使用されません。
「->」は、ポインター演算子として使用され、ポインターが指すオブジェクトのメンバーにアクセスします。

C:

「=>」は使用されません。
「->」は、ポインター演算子として使用され、ポインターが指すオブジェクトのメンバーにアクセスします。

Go:

「=>」は使用されません。
「->」は、ポインター演算子として使用され、ポインターが指すオブジェクトのメンバーにアクセスします。

JavaScript:

「=>」は、アロー関数で使用され、引数と式の関係を表します。
「->」は、JSXでJavaScriptのオブジェクトプロパティのアクセスに使用されます。

PHP:

「=>」は、配列のキーと値の間に使用され、キーと値のペアを定義します。
「->」は、オブジェクトのプロパティまたはメソッドにアクセスするために使用されます。

Python:

「=>」は使用されません。
「->」は関数の引数と戻り値の型を注釈するために使用されます。

Rust:

「=>」は使用されません。(match構文で代用)
「->」は使用されません。(参照(&)とスマートポインタ(Box, Rc, Arcなど)で代用)

PostgreSQL

「=>」は使用されません。
「->」連想配列のキーと値を指定するために使用されます。

Couchbase

「=>」は使用されません。
「->」JSONデータ型のフィールドにアクセスするために使用されます。

関連記事

アロー演算子の書式比較

Discussion