小编kas*_*ens的帖子

反向PartialFunction的提升方法

PartialFunctionlift方法将PartialFunction转换为Function返回Option结果.

是否有相反的操作,将a Function1[A, Option[B]]变为PartialFunction[A, B]

scala

22
推荐指数
3
解决办法
3320
查看次数

Scala中的多个较低类型边界

我注意到,如果不可能设置多个下限(因此它可能是最低常见超类型的迭代器),tuple.productIterator总会返回一个Iterator[Any]想知道的问题.

我尝试了一下搜索,但只发现了这个问题的多个上界.

这是我对如何定义迭代器类型的测试:

def f[A,B](a:A, b:B) = List(a,b)
// return type is List[Any]

def f[A,B, T >: A "and" T >: B](a:A, b:B) = List[T](a,b)
// doesn't compile, but
//  f(1, true) should give a List[AnyVal] and
//  f("x", "y") a List[String]
Run Code Online (Sandbox Code Playgroud)

这是JVM的限制吗?


编辑: 这是一个稍大的例子,当在方法中定义T时,使用IttayD方法似乎无法解决这个问题:

class Foo[A, B](a: A, b: B) {
  def f[T >: A] = List[T](a) // works
  def g[T >: A "and" T >: B] = List[T](a) // doesn't work
}
Run Code Online (Sandbox Code Playgroud)

type-systems jvm scala

12
推荐指数
1
解决办法
2284
查看次数

XHR跨域限制的目的是什么?

我一直想知道XHR跨域限制的目的是什么.

似乎目的是防止恶意注入Javascript向攻击者发送私人数据.但是,使用注入scriptimg标记(或任何其他外部资源)可以轻松地将数据发送到任何域.

javascript security xmlhttprequest cross-domain

5
推荐指数
1
解决办法
901
查看次数