多くの言語では、a = a+bはa+= bと書くことができます。数値演算の場合、a+bはb+aと同じであるため、単一の複合演算子で十分です。
また、a = a--bはa-=bと書くことができます。
ただし、abはbaと同じではありません。したがって、複合代入演算子はa=b-aに対しては機能しません。
それで、演算a = b op a(opは+、-、*、/、%、および順序が重要になる可能性があります)の複合代入演算子はありますか?
[非可換演算]
多くの言語では、a = a+bはa+= bと書くことができます。数値演算の場合、a+bはb+aと同じであるため、単一の複合演算子で十分です。
また、a = a--bはa-=bと書くことができます。
ただし、abはbaと同じではありません。したがって、複合代入演算子はa=b-aに対しては機能しません。
それで、演算a = b op a(opは+、-、*、/、%、および順序が重要になる可能性があります)の複合代入演算子はありますか?
[非可換演算]
いいえ、の略記法はありませんa = b + a
。文字列に対して多くのことを行う必要がある場合はa = b + a
、次のようなリストを作成することをお勧めします。
lst = []
...
lst.append("a")
lst.append("bb")
lst.append("ccc")
lst.append("dddd")
...
lst.reverse()
return ''.join(lst) # "ddddcccbba"
いいえ、ありません。
この省略形は、命令が正確にそれを行うアセンブリ言語に由来すると思われADD
ます-2つのオペランドを取り、加算を行い、それを最初のオペランドに格納します。
人々はこのように考えていたので、このパターンはC言語でもa += b
速記として登場しました。他の言語はこれをCから取得しました。
a = a + b
持っている、持っていない、または持っていない特別な理由はないと思いますa = b + a
。プログラミングでは、これら2つのうちどれも頻繁に必要になることはないと思います。その理由は歴史的です。QWERTYキーボードレイアウトを使用し、他のレイアウトを使用しないのと同じ理由です。
更新:これを参照してください。Cはアセンブリ言語ではなくB言語に基づいていたため、これは神話です。起源は明らかではありません。
+=
。+=
操作というよりも一種の操作に使用されa = b + a
ていたので、速記が存在せず、要求しなかったという事実に問題はありませんでした。考えられる最善の解決策はa = b + a
、一見しただけで明確で読みやすいので、単に書くことです。同じ理由で(読みやすさ)(更新:誰が知っていますか?a++
)PythonはCや他の言語からの既知のものを提供していません。を入力する必要がありますa += 1
。+=
速記はプログラミング初心者にもあまり読めませんが、それでも少なくとも何が何であるかを推測することはできます。それは、伝統、怠惰、読みやすさの間の妥協点です。
伝統がなければ、少なくともPythonでは読みやすさが勝つはずです。したがって、速記を探すのではなく、明確に数文字を書く必要があります。の場合ですa = b + a
。
より多くの文字列を連結する場合は.join()
、パフォーマンスの問題に注意する必要があります。
このようなショートカットがどの言語にも組み込まれていることはわかりませんが、一部の言語では作成できます。
たとえば、Scalaでは、基本的に独自の演算子を定義できます。