介紹這種東西, 我自己都覺得有點多此一舉, 不過在F#的世界裡, 很多東西都和C/C++不同, 身為一個C/C++ programmer, 當然也要把這基本的東西搞定才行。
- 二元運算符
- + : 這個應該不用解釋了, 加法, 不過他沒有提供overflow的檢查。
- - : 這個也不用解釋了, 就是減法, 也沒提供underflow的檢查。
- * : 乘法, 一樣沒有提供overflow的檢查。
- / : 除法, 要注意的是DivideByZeroException這個東西。
- % : 取出餘數的運算符號。
- ** : 次方運算符號, 像是某個數連乘幾次的用法。
- 一元運算符
- + : 這個代表的是正數符號。
- - : 這個代表的是負數符號。
- 二元邏輯運算符
- = : 這個不是指定變數值, 而是指前後兩個值是不是相等。
- > : 大於
- < : 小於
- >= : 大於或等於
- <= : 小於或等於
- <> : 不等於
夠簡單了吧, 但其實在F#裡, 有些運算符是可以被重載的, 至於是哪些, 就得看F#的定義了, 在這裡不多作介紹了。
有一點比較重要的, 在邏輯運算符裡, 前後兩個必須是可以比較的類別, 一般數字當然是沒什麼問題了, 但是如果是物件或是自己定義的東西, 就必須實作IComparable, 當然也不是什麼難事, 因為裡頭只有一個function要實作, 那就是CompareTo, 定義如下:
int CompareTo( Object obj )
所以也不難, 就是比較現在和傳入的誰比較大, 然後回傳三個值, 大於0, 等於0, 及小於0的值就可以了。
沒有留言:
張貼留言