Seq.readonly<'T> 函式 (F#)
建立新的序列物件,這個物件會委派給指定的序列物件。 這可確保型別轉換無法重新探索和轉換原始的序列。 例如,如果指定陣列,則傳回的序列會傳回該陣列的元素,但您無法將傳回的序列物件轉換為陣列。
**命名空間/模組路徑:**Microsoft.FSharp.Collections.Seq
組件:FSharp.Core (在 FSharp.Core.dll 中)
// Signature:
Seq.readonly : seq<'T> -> seq<'T>
// Usage:
Seq.readonly source
參數
source
型別:seq<'T>輸入序列。
例外狀況
例外狀況 |
條件 |
---|---|
當輸入序列為 null 時擲回。 |
傳回值
結果序列。
備註
這個函式在已編譯的組件中名為 ReadOnly。 如果您是透過 F# 以外的語言,或是透過反映來存取函式,請使用這個名稱。
範例
下列程式碼使用 Seq.readonly 建立可變動陣列的不可變檢視。
type ArrayContainer(start, finish) =
let internalArray = [| start .. finish |]
member this.RangeSeq = Seq.readonly internalArray
member this.RangeArray = internalArray
let newArray = new ArrayContainer(1, 10)
let rangeSeq = newArray.RangeSeq
let rangeArray = newArray.RangeArray
// These lines produce an error:
//let myArray = rangeSeq :> int array
//myArray.[0] <- 0
// The following line does not produce an error.
// It does not preserve encapsulation.
rangeArray.[0] <- 0
平台
Windows 8 中, Windows 7, Windows Server 2012 上, Windows Server 2008 R2
版本資訊
F# 核心程式庫版本
支援版本:2.0, 4.0,可攜式執行檔 (PE)。