語法:運算符號
跳至導覽
跳至搜尋
和所有程式語言、腳本語言一樣,Avisynth里的運算符號允許對變量進行運算。運算符號組成構建表達式的基礎,表達式則是構建Avisynth腳本的磚瓦。
Avisynth的運算符號遵循和C語言一樣的規則,但較為寬鬆。規則一樣是指運算優先級和結合順序;寬鬆是指有一些例外,下面會講解。
每個變量類型允許使用的運算符號
對於所有類型的數域變量(剪輯、整數、浮點、布爾),可以使用下面幾種運算符號
== | 等於 |
!= | 不等於 |
<> | 不等於(和!=等效,v2.07) |
對於數值類型的變量(整數、浮點),可以使用下面的整數/浮點專用運算符號
+ | 加 |
- | 減 |
* | 乘 |
/ | 除 |
% | 取餘數 |
>= | 大於或等於 |
<= | 小於或等於 |
< | 小於 |
> | 大於 |
以前版本的Avisynth從有往左處理表達式,由此產生了意想不到的效果,比如:
- a = 10 - 5 - 5 實際上是 10 - (5 - 5) = 10 而不是 (10 - 5) - 5 = 0 !
- b = 100. / 2. / 4. 實際上是 100. / (2. / 4.) = 200 而不是 (100. / 2.) / 4. = 12.5 !
在v2.53里,這些「漏洞」均已修復。
對於字符串類型的變量,可以使用下面的字符串專用運算符號
+ | 合併 |
>= | 大於或等於(v2.07) |
<= | 小於或等於(v2.07) |
< | 小於(v2.07) |
> | 大於(v2.07) |
對於剪輯類型的變量,可以使用下面的剪輯專用運算符號
+ | 非對齊連接 |
++ | 對齊連接 |
對於布爾類型的變量,可以使用下面的布爾專用運算符號
|| | 或 |
&& | 與 |
?: | 條件執行 |
條件執行運算符號示例:
b = (a==true) ? 1 : 2
用偽代碼解釋:
如果 (a=true) 那么 b=1 否则 b=2
從v2.07開始,Avisynth在條件執行區塊里提供了一個NOP()函數(空函數),這樣一來,「否則」就不必寫了(比如有條件的Import或LoadPlugin
運算符號優先級
Avisynth中運算符號優先級列在下面表格中,越靠表格頂端的運算符號擁有越高的優先級。同一行的運算符號優先級相同。
* | / | % | ||||
+ | ++ | - | ||||
< | > | <= | >= | != | <> | == |
&& | ||||||
|| | ||||||
?: |