以下脚本改变了不可变变量 jar,没有错误或警告。这是一个错误吗?还是我的理解有问题?
请解释为什么我不需要使用 mutable 关键字。
旁白:FSharp.Data.Http.RequestString 的 cookieContainer 参数在定义中未标记为可变:https://github.com/fsprojects/FSharp.Data/blob/134a08cda3acb8e746bb25d03692d90ee5caabab/src/Net/Http.fs
#r "System.Xml.Linq.dll";;
#r "nuget:FSharp.Data";;
open FSharp.Data
let url="http://www.google.com"
let uri=System.Uri(url)
// no mutable keyword here
let jar=System.Net.CookieContainer()
// Count is 0
printf $"Pre-request cookie count is: {jar.GetCookies(uri).Count}\n"
let r = Http.RequestString(url, cookieContainer=jar)
// Count is 1
printf $"Post-request cookie count is: {jar.GetCookies(uri).Count}\n"
Run Code Online (Sandbox Code Playgroud)
#r "System.Xml.Linq.dll";; #r "nuget:FSharp.Data";;