嗨!
在今天的First Steps with Rust的Rust出租人(西班牙语)中,我们审查了Rust的标签。我们谈论访问非现有项目时的行为,很高兴获得无返回而不是错误或异常。
例如,此代码:
use std::collections::HashMap;
fn main() {
let mut pets = HashMap::new();
pets.insert("Ace", "dog");
pets.insert("Goku", "car");
pets.insert("Jim", "squirrel");
println!("{:#?}", pets);
let net = "Net";
let net_animal = pets.get(net);
println!("{} is a {:?}", net, net_animal);
}
返回此输出。
warning: `HashMap01` (bin "HashMap01") generated 1 warning
Finished dev [unoptimized + debuginfo] target(s) in 0.83s
Running `target\debug\HashMap01.exe`
{
"Ace": "dog",
"Goku": "car",
"Jim": "squirrel",
}
Net is a None
键网没有元素,因此它没有保留。
在C#中相同吗? ð
,嘿,在C#中会发生什么?我确定,如果我尝试访问不存在的元素,则该应用将触发错误。所以我测试了此代码
// create a new dictionary named petsDic
Dictionary<string, string> petsDic = new Dictionary<string, string>();
petsDic.Add("Ace", "dog");
petsDic.Add("Goku", "car");
petsDic.Add("Jim", "squirrel");
// print the petsDic items
foreach (KeyValuePair<string, string> pet in petsDic)
Console.WriteLine(pet.Key + " is a " + pet.Value);
// get an element from the dictionary
var petD = petsDic["Milly"];
Console.WriteLine("Milly is a " + petD);
,正如预期的那样,我得到了一个system.collections.generic.keynotfoundexception!
但是,嘿,对于此示例,我使用字典<>。因此,让我们尝试使用c#中的标签来尝试一下。因此,让我们尝试此代码。
using System.Collections;
// create a new hashtable named pets
Hashtable pets = new Hashtable();
pets.Add("Ace", "dog");
pets.Add("Goku", "car");
pets.Add("Jim", "squirrel");
// print the pets hashtable items
foreach (DictionaryEntry pet in pets)
Console.WriteLine(pet.Key + " is a " + pet.Value);
// get an element from the hashtable
var petM = pets["Milly"];
Console.WriteLine("Milly is a " + petM);
,这种情况没有触发异常ð。
在此Rust系列中,我们讨论了很多关于了解每种数据类型的工作原理。而且,我还要补充一点,如果您有一些以前的知识,最好检查和验证知识!我被一个错误的假设抓住了!
快乐编码!
问候
el bruno
我的博客ElBruno.com中的更多帖子。