2011年9月19日 星期一

F# Arithmetic Operators (算數運算符號)

介紹這種東西, 我自己都覺得有點多此一舉, 不過在F#的世界裡, 很多東西都和C/C++不同, 身為一個C/C++ programmer, 當然也要把這基本的東西搞定才行。

 

  • 二元運算符
    • + : 這個應該不用解釋了, 加法, 不過他沒有提供overflow的檢查。
    • - : 這個也不用解釋了, 就是減法, 也沒提供underflow的檢查。
    • * : 乘法, 一樣沒有提供overflow的檢查。
    • / : 除法, 要注意的是DivideByZeroException這個東西。
    • % : 取出餘數的運算符號。
    • ** : 次方運算符號, 像是某個數連乘幾次的用法。
  • 一元運算符
    • + : 這個代表的是正數符號。
    • - : 這個代表的是負數符號。
  • 二元邏輯運算符
    • = : 這個不是指定變數值, 而是指前後兩個值是不是相等。
    • > : 大於
    • < : 小於
    • >= : 大於或等於
    • <= : 小於或等於
    • <> : 不等於

夠簡單了吧, 但其實在F#裡, 有些運算符是可以被重載的, 至於是哪些, 就得看F#的定義了, 在這裡不多作介紹了。

有一點比較重要的, 在邏輯運算符裡, 前後兩個必須是可以比較的類別, 一般數字當然是沒什麼問題了, 但是如果是物件或是自己定義的東西, 就必須實作IComparable, 當然也不是什麼難事, 因為裡頭只有一個function要實作, 那就是CompareTo, 定義如下:

int CompareTo(
	Object obj
)
所以也不難, 就是比較現在和傳入的誰比較大, 然後回傳三個值, 大於0, 等於0, 及小於0的值就可以了。

沒有留言: