- F# 基礎教程
- F# - 首頁
- F# - 概述
- F# - 環境設定
- F# - 程式結構
- F# - 基本語法
- F# - 資料型別
- F# - 變數
- F# - 運算子
- F# - 決策
- F# - 迴圈
- F# - 函式
- F# - 字串
- F# - 可選項
- F# - 元組
- F# - 記錄
- F# - 列表
- F# - 序列
- F# - 集合
- F# - 對映
- F# - 判別聯合
- F# - 可變資料
- F# - 陣列
- F# - 可變列表
- F# - 可變字典
- F# - 基本I/O
- F# - 泛型
- F# - 委託
- F# - 列舉
- F# - 模式匹配
- F# - 異常處理
- F# - 類
- F# - 結構體
- F# - 運算子過載
- F# - 繼承
- F# - 介面
- F# - 事件
- F# - 模組
- F# - 名稱空間
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
廣告