F 入門 十 mutable關鍵字

2022-07-04 21:42:15 字數 997 閱讀 3830

f#中的變數的值在宣告初始化後就不可以被修改了。

但如果想使用可變的變數時,用mutable關鍵字修飾變數就可以被修改了。

使用mutable關鍵字宣告變數後,使用<-可以修改變數的值。

下面我們來看一些例子。

// 定義乙個可變整形變數,初始值為1,改變值後為10

> letmutable num = 1;;

valmutable num : int = 1

>num;;

val it :int = 1

> num<- 10;;

val it :unit = ()

>num;;

val it :int = 10

// 這裡是乙個record(記錄),裡面的miles欄位為可變值

> typemutablecar = ;;

typemutablecar =

mutable與引用型別是有區別的,引用型別是針對變數本身,而mutable值只是針對值。

可以通過下面例子看出:

//引用變數

> letnum = ref 1

let b =num

b := 2

//這裡宣告乙個引用變數,然後賦值給b後,改變b值為2

val num :int ref =

val b :int ref =

>!num;;

val it :int = 2

//mutable變數

//這裡定義乙個mutable變數,然後賦值給mutable變數b,改變b的值為2

> letmutable num = 1

letmutable b = num

b<- 2;;

valmutable num : int = 1

valmutable b : int = 2

>num;;

val it :int = 1

實際上,引用型別可以理解為包含乙個mutable欄位(contents)的記錄型別。

關鍵字mutable小議

關鍵字mutable小議 內容 我們知道在用const修飾的類成員函式,這意味著什麼,從effective c 這本書上我們可以了解到,這裡存在兩個流行的概念 bitwise constness or physical constness 和logical constness.bitwise con...

mutable關鍵字解析

c 11引入mutable關鍵字,它是乙個型別修飾符,用來修飾成員變數或者是lambda函式,接下來分布來說明。當mutable用來修飾成員變數時,表明該成員變數屬於物件內部可變狀態,對外不可見。即使在const函式也可改變,不影響外部使用者對此const函式的邏輯語義。比如,基於mutex的執行緒...

c 中mutable關鍵字

mutalbe的中文意思是 可變的,易變的 跟constant 既c 中的const 是反義詞。在c 中,mutable也是為了突破const的限制而設定的。被mutable修飾的變數,將永遠處於可變的狀態,即使在乙個const函式中。我們知道,如果類的成員函式不會改變物件的狀態,那麼這個成員函式一...