6.1.2.2 f# 的管道運算子
使用管道運算子(|>),能夠把函式的第乙個引數寫在左邊,即,在函式名的前面。這是非常有用的,比如,想呼叫幾個函式,處理序列中的值,想要找出第乙個處理的值。下面的示例演示了反轉 f# 列表,然後,得到乙個元素:
list.hd(list.rev [1 .. 5])
這種寫法並不優雅,因為,寫的操作順序與執行的順序相反,且要處理的值在右邊,括在括號中。在 c# 中,使用擴充套件方法,可能這樣寫:
list.reverse().head();
在 f# 中,使用管道運算子,能得到同樣的結果:
[1...5] |> list.rev |> list.hd
儘管這看起來可能有點困難,但是,運算子是非常簡單的。它有兩個引數值:第二個引數值(在右邊)是函式,第乙個引數值(在左側)是值。運算子為函式提供引數值,並返回結果。
在某種意義上,管道類似於在物件上使用點表示法,呼叫方法,但是,它並不侷限於物件的固有方法。因此,類似於擴充套件方法,當通常作為管道運算子使用的 f# 函式,用 c# 來寫時,會用擴充套件方法來實現。
現在,我們已經簡短介紹了泛型高階函式和運算子,終於可以看到如何使用它們解決日常的函式程式設計問題了,我們將討論的第乙個主題是使用高階函式處理元組。
LInux 管道 Let 運算子
1 左邊的輸出為右邊的輸入 2 左邊和右邊都開啟子bash不會改變原值 root linux1 sh a 10 root linux1 sh a 22 echo ok ok root linux1 sh echo a 10管道符下子bash 會繼承父 bash 的變數管道符情況下,子bash會繼承父...
No0000F9 C 運算子過載
public static box operator box b,box c 上面的函式為使用者自定義的類 box 實現了加法運算子 它把兩個 box 物件的屬性相加,並返回相加後的 box 物件。運算子描述 這些一元運算子只有乙個運算元,且可以被過載。這些二元運算子帶有兩個運算元,且可以被過載。這...
運算子過載 賦值運算子的過載
有時候希望賦值運算子兩邊的型別可以不匹配,比如,把乙個int型別變數賦值給乙個complex物件,或把乙個 char 型別的字串賦值給乙個字串物件,此時就需要過載賦值運算子 注意 賦值運算子 只能過載為成員函式 賦值運算子過載例項示例 include include using namespace ...