日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言交换a b(运算符),关于编程语言:是否有一个复合赋值运算符用于a = b

發布時間:2025/4/5 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言交换a b(运算符),关于编程语言:是否有一个复合赋值运算符用于a = b 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在許多語言中,a = a + b可以寫成+ = b

在數值運算的情況下,a + b與b + a相同,因此單個復合運算符就足夠了。

此外,a = a - b可以寫為 - = b。

但是,a-b不等于b-a。 因此,復合賦值運算符不適用于a = b - a

那么,是否存在操作a = b op a的復合賦值運算符(其中op可以是+, - ,*,/,%,并且順序很重要)?

[非交換業務]

這取決于所涉及對象的類型。

我要求的情況是+操作不是可交換的,無論對象的類型如何。

只需通過附加而不是前置來構建字符串。

除了連接之外你用2個字符串試圖做什么?

@Imno Strings只是一個例子。

順便說一句,為避免在答案中出現與字符串相關的混淆,你可以使用/ =或 - =操作數的順序很重要。

@Maksee感謝您的建議。 雖然,我個人不明白為什么每個人都只是跳過弦樂而不是實際的問題!

我不認為有這個符號,但正如@MaximYegorushkin建議的那樣,你可以使用=-,=%等來表示它。

@didierc這正是我的想法,但似乎有點不合邏輯:/

沒有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指令完全相同 - 需要兩個操作數,添加并將其存儲到第一個。 del>

我會說人們習慣這樣思考,所以這種模式在C語言中也出現了a += b簡寫。其他語言來自C。 del>

我認為沒有特別的理由擁有或不擁有a = a + b或a = b + a。我認為在編程中經常需要它們中的兩個。原因是歷史性的。與我們使用QWERTY鍵盤布局而不是其他鍵盤布局的原因相同。 del>

更新:看到這一點,這是一個神話,因為C基于B語言,而不是來自匯編語言。起源尚不清楚。

可能的原因

每個操作員都會使語言更復雜。 Python支持運算符重載,因此有更多的工作要有一個新的。

它很少用于與+=進行比較。

人們從匯編語言更多地使用+=類型的操作而不是a = b + a,所以他們沒有任何簡寫存在并且沒有請求它的事實。

可讀性問題。

缺乏合適的語法。你會如何設計它?

可能的解決方案

最好的解決方案是只寫a = b + a,因為它從第一眼看就清晰可讀。 出于同樣的原因(可讀性) del>(更新:誰知道?)Python不提供從C和其他語言中已知的a++。你必須輸入a += 1。 +=速記對于編程初學者來說也不是很容易理解,但人們仍然可以以某種方式至少猜測是什么。它是傳統,懶惰和可讀性之間的妥協。

如果沒有傳統,可讀性應該贏,至少在Python中。因此,應該清楚地寫一些字符,而不是尋找速記。 a = b + a就是這種情況。

注意

如果要連接更多字符串,則應注意.join()以了解性能問題。

有意思(起源)。 支持你的想法的任何事情/證據? 我曾經認為這種符號只是作為一種語言特征而發展,因為它易于編寫。 我個人不認為除了絕對的初學者之外,這個符號應該有任何可讀性問題。

我沒有證據,但我嘗試了谷歌的東西,我偶然發現了這個推理:stackoverflow.com/questions/3654830/人們提到了不必要的復雜性,可讀性等等。這個答案在某種程度上與我的想法有關,潛入C的歷史和鏈接 一些來源stackoverflow.com/a/3654973/325365,但它似乎只是一個神話。

我更新了答案。

謝謝,特別是鏈接:)

我不知道任何語言內置的這種快捷方式,但有些語言可以讓你創建一個。

例如,在Scala中,您基本上可以定義自己的運算符。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的c语言交换a b(运算符),关于编程语言:是否有一个复合赋值运算符用于a = b的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。