小编Dan*_*ral的帖子

Scala在哪里寻找暗示?

对Scala新手的一个隐含问题似乎是:编译器在哪里寻找隐含?我的意思是隐含的,因为这个问题似乎永远不会完全形成,好像没有它的话.:-)例如,integral下面的值来自哪里?

scala> import scala.math._
import scala.math._

scala> def foo[T](t: T)(implicit integral: Integral[T]) {println(integral)}
foo: [T](t: T)(implicit integral: scala.math.Integral[T])Unit

scala> foo(0)
scala.math.Numeric$IntIsIntegral$@3dbea611

scala> foo(0L)
scala.math.Numeric$LongIsIntegral$@48c610af
Run Code Online (Sandbox Code Playgroud)

对于那些决定学习第一个问题的答案的人来说,另一个问题是,在某些明显模糊的情况下(但无论如何编译),编译器如何选择使用哪个隐式?

例如,scala.Predef定义两个转换String:一个转换为WrappedString另一个转换为StringOps.然而,这两个类都有很多方法,所以为什么Scala不会在调用时抱怨歧义map

注意:这个问题的灵感来自另一个问题,希望以更一般的方式陈述问题.该示例是从那里复制的,因为它在答案中被引用.

scala implicit-conversion implicits

389
推荐指数
2
解决办法
4万
查看次数

如何在Scala上绕过类型擦除?或者,为什么我不能获得我的集合的类型参数?

Scala生活中的一个可悲事实是,如果你实例化一个List [Int],你可以验证你的实例是一个List,你可以验证它的任何单个元素是一个Int,但不是它是一个List [ Int],可以很容易地验证:

scala> List(1,2,3) match {
     | case l : List[String] => println("A list of strings?!")
     | case _ => println("Ok")
     | }
warning: there were unchecked warnings; re-run with -unchecked for details
A list of strings?!
Run Code Online (Sandbox Code Playgroud)

-unchecked选项将责任直接归咎于类型擦除:

scala>  List(1,2,3) match {
     |  case l : List[String] => println("A list of strings?!")
     |  case _ => println("Ok")
     |  }
<console>:6: warning: non variable type-argument String in type pattern is unchecked since it is eliminated by erasure
        case l …
Run Code Online (Sandbox Code Playgroud)

scala type-erasure

366
推荐指数
7
解决办法
7万
查看次数

如何在Git中丢弃本地提交?

我一直在做一些事情,并决定完全搞砸了......在完成了一些事情之后.所以我尝试了以下顺序:

git reset --hard
git rebase origin
git fetch
git pull
git checkout
Run Code Online (Sandbox Code Playgroud)

在那时我得到了消息

Your branch is ahead of 'origin/master' by 2 commits.
Run Code Online (Sandbox Code Playgroud)

我想丢弃我的本地提交,而不必删除我的本地目录并重新下载所有内容.我怎么能做到这一点?

git git-reset

248
推荐指数
3
解决办法
16万
查看次数

如何使用SQLPLUS假脱机到CSV格式的文件?

我想提取一些CSV输出格式的查询.不幸的是,我不能使用任何花哨的SQL客户端或任何语言来做到这一点.我必须使用SQLPLUS.

我该怎么做?

sql csv oracle sqlplus

135
推荐指数
8
解决办法
52万
查看次数

Scala有哪些自动资源管理替代方案?

我在Web上看到了许多针对Scala的ARM(自动资源管理)示例.虽然大多数看起来很像彼此,但它似乎是一种写作的通道.不过,我确实看到了一个使用延续的非常酷的例子.

无论如何,很多代码都有这种或那种类型的缺陷,所以我认为在Stack Overflow上有一个引用是个好主意,我们可以在这里投票给出最正确和最合适的版本.

scala resource-management

100
推荐指数
6
解决办法
2万
查看次数

什么是Java的ClassName.class的Scala等价物?

如何Class在Scala中获取实例?在Java中,我可以这样做:

Class<String> stringClass = String.class;
Run Code Online (Sandbox Code Playgroud)

什么是Scala中的等价物?

scala

83
推荐指数
1
解决办法
2万
查看次数

如何在Scala中链接implicits?

pimp-my-library模式允许我通过提供从该类到实现该方法的类的隐式转换,似乎向类添加方法.

斯卡拉不允许两个这样的隐式转换正在发生,但是,我不能得到AC使用隐含AB和另一个隐含的BC.有没有办法解决这个限制?

scala implicit-conversion implicits

76
推荐指数
2
解决办法
7593
查看次数

Scala中的多个Actors实现有何不同?

随着Scala 2.9.0的发布,Typesafe Stack也被宣布,它结合了Scala语言和Akka框架.现在,虽然Scala在其标准库中有演员,但Akka使用自己的实现.而且,如果我们寻找其他实现,我们也会发现Lift和Scalaz也有实现!

那么,这些实现之间有什么区别?

scala actor akka

76
推荐指数
2
解决办法
7105
查看次数

Scala中的功能反应式编程

是否有为Scala编写的库启用功能反应式编程?

functional-programming scala

56
推荐指数
7
解决办法
2万
查看次数

你认为什么是优秀的API文档?

我一直都喜欢Java API上的文档,但我知道有些人认为它们缺乏.所以我想知道,您认为API文档的一个很好的例子是什么?

请在任何答案中包含链接或实际示例.我希望有一些参考资料,我(以及其他人)当然可以用来改进我们自己的文档.

api documentation

45
推荐指数
6
解决办法
1万
查看次数