这个答案给出了HashMap的以下初始化.
scala> val m = collection.immutable.HashMap(0 -> 1, 2 -> 3)
m: scala.collection.immutable.HashMap[Int,Int] = Map((0,1), (2,3))
Run Code Online (Sandbox Code Playgroud)
HashMap的官方Scala 文档将此作为唯一的HashMap构造函数.
new HashMap()
Run Code Online (Sandbox Code Playgroud)
现在,new HashMap()显然没有在上面的初始化中使用,但是如何读取官方文档并且知道可以使用元组列表来初始化HashMap?
给出两个版本号和一个比较说明符:
def check_versions(ver1, specifier, ver2):
# TODO
check_versions("1.2.3", ">=", "2.0.0") # Should return True
check_versions("1.2.3", "==", "2.0.0") # Should return False
Run Code Online (Sandbox Code Playgroud)
我想将比较应用于两个版本,以便从上面得到预期的输出.
我发现,我可以比较使用的版本LooseVersion从distutils.version像这样:
LooseVersion("1.2.3") >= LooseVersion("2.0.0")
Run Code Online (Sandbox Code Playgroud)
但是如何让比较本身取决于传入specifier?
我可以从这里使用解决方案:
def check_versions(ver1, specifier, ver2):
return {
'==': LooseVersion(ver1) == LooseVersion(ver2),
'>=': LooseVersion(ver1) >= LooseVersion(ver2),
'<=': LooseVersion(ver1) <= LooseVersion(ver2),
'>': LooseVersion(ver1) > LooseVersion(ver2),
'<': LooseVersion(ver1) < LooseVersion(ver2),
}.get(x, False)
Run Code Online (Sandbox Code Playgroud)
但这对我来说真的很笨拙.有没有更优雅的解决方案?
给定一个Type命名inner,我想创建一个新的Type,表示Option包含与...相同类型的类型inner.
例如,执行此操作的方法的签名可能类似于:
def createOptionType(inner: Type): Type = {
typeOf[Option[inner]] // this line is pseudocode
}
Run Code Online (Sandbox Code Playgroud)
这个答案有部分帮助,但是使用了泛型方法,而在这种情况下,我传递了一个具体类型,使泛型不可用.
假设我经常使用Foo模板类型的模板类int:
Foo<int> number;
Foo<int> location;
...
Run Code Online (Sandbox Code Playgroud)
我知道有一种方法可以通过为这个特定的模板类型定义一个名称来使这个更漂亮,所以我可以拥有相同(但更漂亮)的代码,如下所示:
FooInt number;
FooInt location;
...
Run Code Online (Sandbox Code Playgroud)
我相信这可以用编译器指令完成,#define但我不确定具体细节.或者,有没有办法实现一个FooInt被定义为的新类Foo<int>?
我得到了这个意外的"完成"令牌错误
echo -e "Enter the file stem name"
read filestem
for i in {1..22}
do
`java -cp /export/home/alun/jpsgcs/ CMorgansToTheta $filestem_$i.INPUT.par $filestem_$i.THETA.par`
done
Run Code Online (Sandbox Code Playgroud) git log提供一个唯一的 sha 来表示它所提供的信息的任何给定提交。
commit 6793960b9e333d77b99405f84c78888e41d6c712 <--- THIS
Author: Cory Klein <cory.klein@------.com>
Date: Thu Jul 18 11:45:51 2013 -0600
Delete local files after transfer
Run Code Online (Sandbox Code Playgroud)
我们偶尔会传递这些 shas 来引用团队中的承诺。如果只显示运行命令git log时引用特定提交所需的位数,那就太好了:git log
commit 67939 <--- Only 5 digits are needed to make this sha unique
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
在我的测试中,我的代码如下所示:
val myVar = getVar() match {
case Some(v) => v
case None => fail() // TestNG
}
// more testing on myVar
...
// TestNG
public static void fail() { ... }
Run Code Online (Sandbox Code Playgroud)
问题是myVar被分配了类型Any.处理这种情况的最佳方法是什么?