2011-10-06 51 views
1

我很感興趣,爲什麼賦值運算符的速記形式只能以一種方式工作,即意味着追加變量的值。以多種語言預先編寫變量的速記邏輯

Ex。 (在JavaScript):

x+=y x=x+y 
x-=y x=x-y 
x*=y x=x*y 
x/=y x=x/y 
x%=y x=x%y 

我經常發現,我需要預先設置變量的情況:

例。

x=y+x 

假設x和y是字符串,並且您正在連接。

我想有一種語法,允許這樣的:

x=+y 

當我做我++或++我遞增數。

有沒有一些支持此語言的語言?

回答

0

有語言,允許定義新的運營商和/或過載現有經營(見operator overloading)。

但運營商和他們的使用應該是明確的。在您的示例中,x=+y可能會被解釋爲x=y+x(如您所示),但也可以解釋爲x=(+x)+,作爲unary operation類似於-1中的否定操作)。這種歧義可以使得使用一種語言變得困難,特別是當程序員想要使他們的代碼簡潔明瞭時。這也是爲什麼一些語言沒有syntactic sugar像前/後增加/減少運算符(例如Python)。

1

肯定X = Y + X相同Y + = X

我困惑的是,爲什麼你會學習新的語言只是爲了節省1個字符!

不過,我建議JQuery的.prepend()方法

http://api.jquery.com/prepend/

+0

它給出了完全相同的結果。我不確定你想要達到什麼目的。 – Tules

+0

在程序的邏輯方面,不是不一樣,假設你有兩個變量,一個'var html',你用複雜的函數和'var title'構建你想要的前綴。你想通過'html' no'title' var。我不想根據這些細節學習一門語言,如果某種語言支持這一點,我很感興趣。不幸的是我不能降低你的答案。 – Memochipan

+0

您編輯的答案更有用,但想法是簡化語法。 – Memochipan