草庐IT

GetOrDefault

全部标签

c# - 如何在 F# 中定义 T[] 的类型扩展?

在C#中,我可以为类型T的泛型数组定义一个扩展方法,如下所示:publicstaticTGetOrDefault(thisT[]arr,intn){if(arr.Length>n){returnarr[n];}returndefault(T);}但对于我的生活,我无法弄清楚如何在F#中做同样的事情!我试过type'aarraywith,typearraywith和type'a[]with编译器对它们中的任何一个都不满意。谁能告诉我在F#中执行此操作的权利是什么?当然,我可以通过隐藏Array模块并为此轻松添加一个函数来做到这一点,但我真的很想知道如何将其作为扩展方法来实现!

java - API 24 Android 以下设备的 getOrDefault 替代方法

我正在编写一个Android应用程序,我正在使用一个Java类,该类具有如下循环:for(Setitemset:candidateList2){supportCountMap.put(itemset,supportCountMap.getOrDefault(itemset,0)+1);}我在方法上收到警告CallrequiresAPIlevel24(currentminis16):supportCountMap.getOrDefault(itemset,0)+1);此方法是否有任何变通方法可以在SDK版本低于24的手机上运行,​​例如Marshmallow(23)和Lollipop(2

getordEfault用于map< string,?>

尝试为地图getOdeFault,例如:Stringtest=map.getOrDefault("test","")但这给了我一个错误“必需的?但是有一个字符串”。无论如何要解决这个问题吗?看答案一个值Map可能是任何类型的。getOrDefault要求第二个参数与值相同。除了没有其他价值null可以满足这一点,因为您不知道是否那?是String,Integer管他呢。因为您只从地图中检索一个值,所以您可以安全地施放Map:Objectvalue=((Map)map).getOrDefault("key","");这是因为您没有在地图中投入任何值,以使呼叫以后不安全;任何值类型都可以安全地存储

返回默认值而不是 null 的 Java Map 实现

我有一个Map>在我的代码中,如果map的#get(),我会避免潜在的空指针方法返回一个空列表而不是null。javaAPI中有这样的东西吗?我应该延长HashMap? 最佳答案 感谢default方法,Java8现在内置了Map::getOrDefault:Mapmap=...map.put(1,"1");System.out.println(map.getOrDefault(1,"2"));//"1"System.out.println(map.getOrDefault(2,"2"));//"2"

返回默认值而不是 null 的 Java Map 实现

我有一个Map>在我的代码中,如果map的#get(),我会避免潜在的空指针方法返回一个空列表而不是null。javaAPI中有这样的东西吗?我应该延长HashMap? 最佳答案 感谢default方法,Java8现在内置了Map::getOrDefault:Mapmap=...map.put(1,"1");System.out.println(map.getOrDefault(1,"2"));//"1"System.out.println(map.getOrDefault(2,"2"));//"2"

java - 我应该在使用 getOrDefault() 之后使用 put() 还是 putIfAbsent()?

Java8引入了那些不错的方法getOrDefault()和putIfAbsent(),允许编写如下代码:Map>itemsByFoo=...Listbars=itemsByFoo.getOrDefault(key,newArrayList());bars.add(someNewBar);现在我想知道是否有充分的事实理由:itemsByFoo.put(key,bars);或itemsByFoo.putIfAbsent(key,bars);两者都可以:当向列表添加元素时,选项1可能会做很多不必要的“放置”调用当为新键添加新条目占主导地位时,option2可能会执行很多不必要的“conta