गूगल एक एफ # शब्दकोश (या अन्य संग्रह) में जोड़ने और प्रविष्टियों को हटाने का उदाहरण के बहुत सारे अर्जित करता है। लेकिन मैंआप एक शब्दकोश प्रविष्टि के मूल्यों को mutable के रूप में कैसे घोषित करते हैं?
myDict["Key"] = MyValue;
के बराबर मैं
myDict.["Key"] <- MyValue
की कोशिश की है करने के लिए उदाहरण नहीं दिख रहा है मैं भी
Dictionary<string, mutable string>
रूप में अच्छी तरह के रूप में कई वेरिएंट पर शब्दकोश घोषित करने का प्रयास किया इस। हालांकि, मैं अभी तक सही संयोजन पर हिट नहीं है ... अगर यह एफ # में वास्तव में संभव है।
संपादित करें: अपमानजनक कोड नहीं है:
type Config(?fileName : string) =
let fileName = defaultArg fileName @"C:\path\myConfigs.ini"
static let settings =
dict[ "Setting1", "1";
"Setting2", "2";
"Debug", "0";
"State", "Disarray";]
let settingRegex = new Regex(@"\s*(?<key>([^;#=]*[^;#= ]))\s*=\s*(?<value>([^;#]*[^;# ]))")
do File.ReadAllLines(fileName)
|> Seq.map(fun line -> settingRegex.Match(line))
|> Seq.filter(fun mtch -> mtch.Success)
|> Seq.iter(fun mtch -> settings.[mtch.Groups.Item("key").Value] <- mtch.Groups.Item("value").Value)
त्रुटि मैं हो रही है:
System.NotSupportedException: This value may not be mutated
at [email protected]_Item(K key, V value)
at <StartupCode$FSI_0036>[email protected](Match mtch)
at Microsoft.FSharp.Collections.SeqModule.iter[T](FastFunc`2 action, IEnumerable`1 sequence)
at FSI_0036.Utilities.Config..ctor(Option`1 fileName)
at <StartupCode$FSI_0041>[email protected]()
stopped due to error
नहीं कर सकता, अनुसंधान साइट अपटाइम वास्तव में खराब है। यहां Google कैश लिंक अस्थायी रूप से http://209.85.229.132/search?q=cache:GGIlRD9kBnYJ:research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/fsharp.core/microsoft.fsharp है। collections.map.html + f% 23 + microsoft.fsharp.collections.map और cd = 1 और hl = en & ct = clnk और gl = uk – ShuggyCoUk
ध्यान दें कि बाइनरी पेड़ में लुकअप ओ (लॉग n) है, ओ (एन लॉग एन) जैसा कि बताया गया है। – kvb
ओओएस - टाइपो धन्यवाद – ShuggyCoUk