F# - 變數



變數是賦予程式可操作的儲存區域的名稱。每個變數都有一個特定型別,它決定了變數記憶體的大小和佈局;可以儲存在該記憶體中的值的範圍;以及可以應用於變數的操作集。

F# 中的變數宣告

let 關鍵字用於變數宣告:

例如:

let x = 10

它聲明瞭一個變數 x 並將其值賦為 10。

您也可以將表示式賦給變數:

let x = 10
let y = 20
let z = x + y

以下示例說明了這個概念:

示例

let x = 10
let y = 20
let z = x + y

printfn "x: %i" x
printfn "y: %i" y
printfn "z: %i" z

編譯並執行程式後,將產生以下輸出:

x: 10
y: 20
z: 30

F# 中的變數是不可變的,這意味著一旦變數繫結到一個值,就不能更改它。它們實際上被編譯為靜態只讀屬性。

以下示例演示了這一點。

示例

let x = 10
let y = 20
let z = x + y

printfn "x: %i" x
printfn "y: %i" y
printfn "z: %i" z

let x = 15
let y = 20
let z = x + y

printfn "x: %i" x
printfn "y: %i" y
printfn "z: %i" z

編譯並執行程式後,將顯示以下錯誤訊息:

Duplicate definition of value 'x'
Duplicate definition of value 'Y'
Duplicate definition of value 'Z'

帶型別宣告的變數定義

變數定義告訴編譯器應該在哪裡以及為變數建立多少儲存空間。變數定義可以指定資料型別,幷包含一個或多個該型別變數的列表,如下例所示。

示例

let x:int32 = 10
let y:int32 = 20
let z:int32 = x + y

printfn "x: %d" x
printfn "y: %d" y
printfn "z: %d" z

let p:float = 15.99
let q:float = 20.78
let r:float = p + q

printfn "p: %g" p
printfn "q: %g" q
printfn "r: %g" r

編譯並執行程式後,將顯示以下錯誤訊息:

x: 10
y: 20
z: 30
p: 15.99
q: 20.78
r: 36.77

可變變數

有時您需要更改儲存在變數中的值。為了指定在程式的後面部分,宣告和賦值的變數的值可能會發生變化,F# 提供了mutable關鍵字。您可以使用此關鍵字宣告和賦值可變變數,其值將發生更改。

mutable關鍵字允許您宣告和賦值可變變數的值。

您可以使用let關鍵字為可變變數賦值一些初始值。但是,要為其賦值新的後續值,您需要使用運算子。

例如:

let mutable x = 10
x ← 15

以下示例將闡明此概念:

示例

let mutable x = 10
let y = 20
let mutable z = x + y

printfn "Original Values:"
printfn "x: %i" x
printfn "y: %i" y
printfn "z: %i" z

printfn "Let us change the value of x"
printfn "Value of z will change too."

x <- 15
z <- x + y

printfn "New Values:"
printfn "x: %i" x
printfn "y: %i" y
printfn "z: %i" z

編譯並執行程式後,將產生以下輸出:

Original Values:
x: 10
y: 20
z: 30
Let us change the value of x
Value of z will change too.
New Values:
x: 15
y: 20
z: 35
廣告
© . All rights reserved.