小编oxb*_*kes的帖子

使用Scala的varargs

我正试图弄清楚如何做以下事情:

def foo(msf: String, o: Any, os: Any*) = {
    println( String.format(msf, o :: List(os:_*)) )
}
Run Code Online (Sandbox Code Playgroud)

有一个原因,我必须单独声明方法o和一个os Seq.基本上,我最终得到了使用单个对象参数(类型List)调用的格式方法.尝试:

def foo(msf: String, o: Any, os: Any*) = {
    println( String.format(msf, (o :: List(os:_*))).toArray )
}
Run Code Online (Sandbox Code Playgroud)

给我类型错误:

发现:数组[任意]

必需的Seq [java.lang.Object]

我尝试过编译,编译但失败的原因和第一个例子差不多.当我尝试

println(String.format(msg, (o :: List(os:_*)) :_* ))
Run Code Online (Sandbox Code Playgroud)

这无法使用隐式转换歧义进行编译(any2ArrowAssocany2stringadd)

scala variadic-functions

54
推荐指数
2
解决办法
5万
查看次数

scalaz中的函数语法益智游戏

在观看Nick Partidge关于导出scalaz的演示之后,我开始看这个例子,这真是太棒了:

import scalaz._
import Scalaz._
def even(x: Int) : Validation[NonEmptyList[String], Int] 
    = if (x % 2 ==0) x.success else "not even: %d".format(x).wrapNel.fail

println( even(3) <|*|> even(5) ) //prints: Failure(NonEmptyList(not even: 3, not even: 5))
Run Code Online (Sandbox Code Playgroud)

我试图了解<|*|>方法正在做什么,这里是源代码:

def <|*|>[B](b: M[B])(implicit t: Functor[M], a: Apply[M]): M[(A, B)] 
    = <**>(b, (_: A, _: B))
Run Code Online (Sandbox Code Playgroud)

好的,这是相当令人困惑的(!) - 但它引用了<**>声明的方法:

def <**>[B, C](b: M[B], z: (A, B) => C)(implicit t: Functor[M], a: Apply[M]): M[C] 
    = a(t.fmap(value, z.curried), …
Run Code Online (Sandbox Code Playgroud)

functional-programming scala scala-2.8 scalaz

51
推荐指数
1
解决办法
5067
查看次数

2.10中scala的内容是什么?

显然有反射库,但我们还期望在下一版scala中看到什么?任何语言变化?有没有我可以看到路线图的网站?

scala scala-2.10

48
推荐指数
3
解决办法
8371
查看次数

您在Scala/Lift中开发的经验是什么?

我最近听到了很多关于ScalaLift Web框架的好东西,尤其是来自Foursquare的人,因此我可能会在我的下一个项目中使用这项技术.

  • 你们中的任何人都是Scala/Lift Developers吗?
  • 您在此平台上开发的经验是什么?与Ruby On Rails或Python/Django相比,它有哪些优势?
  • 您是否认为它是一种可行的技术,并且在未来几年内"值得关注"?

这值得么?在Scala/Lift平台上分享您的经验.

java frameworks scala lift

47
推荐指数
3
解决办法
4185
查看次数

什么是scala的实验虚拟模式匹配器?

我见过不少几个 提到最近新的"虚拟化"模式斯卡拉匹配.我错过了备忘录,解释它究竟是什么......

scala pattern-matching scala-2.10

43
推荐指数
2
解决办法
2567
查看次数

结对编程进行面试

我们公司一直在考虑取消我们的面试程序,让每位候选人与一些程序员坐下来进行4-5个小时,然后进行一些配对编程.

我在理论上喜欢这个想法,但我不确定你怎么能真正让每个候选人都公平.你怎么评价他们?难道他们的输入真的不取决于每个程序员当天的工作吗?

任何关于这是一个好主意/坏主意或如何让它工作的想法都是我在这里寻找的.

干杯!

编辑:

结果 - 根据要求

我们将像以前一样进行面试的第一步.电话紧接着面对面.我们将带回3名开发人员与团队的所有7名成员坐在一起,而不是将他们带回第三次也是最后一次烧烤.我们决定让团队决定谁被雇用.

出于几个原因,我们得出了这个结论.我们相信这将使开发人员能够选择他们正在工作的人.第二个原因是群体动态.我们认为拥有一个良好的团队动力是非常重要的,直到你雇用一个人之后很难说,如果他们适合或不适合.

因此,最终的结果是我们将继续进行结对编程会议,但采用完全不同的方式,并采用与最初预期完全不同的方式.

对这种方法的任何想法或批评都非常受欢迎!(这个编辑作为下面的答案发布,所以如果你认为这不是最好的方法,请随时选择downvote)

pair-programming extreme-programming

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

易失性变量"读取"和正常读取一样快吗?

我知道写入volatile变量会将其从所有cpus的内存中刷新,但是我想知道对volatile变量的读取是否和正常读取一样快?

volatile变量永远被放置在CPU缓存或者它总是从主存储器中获取?

java performance multithreading volatile

39
推荐指数
3
解决办法
6386
查看次数

scala中的<:<运算符

任何人都可以<:<在scala中提供有关运算符的一些细节.我认为:

if(apple <:< fruit)  //checks if apple is a subclass of fruit.
Run Code Online (Sandbox Code Playgroud)

还有其他解释吗?我在scala源文件中看到了很多定义.

scala

39
推荐指数
4
解决办法
7189
查看次数

scala中的静态内部类

Scala中使用Java进行此类操作的模拟是什么:

public class Outer {
  private Inner inner;

  public static class Inner {
  }

  public Inner getInner() { return inner; }
}
Run Code Online (Sandbox Code Playgroud)

我特别希望我的内部阶级不必拥有一个完全限定的名字 - 即我想要的Trade.Type,不是TradeType.所以在Scala我想象它可能是这样的:

class Outer(val inner: Inner) {
    object Inner
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用:我的scala Inner似乎从课外看不出来Outer.一个解决方案当然是:

class Inner
class Outer(val inner: Inner)
Run Code Online (Sandbox Code Playgroud)

这是确定-但因为我的课的名字,Inner真是的"类型" OuterOuter实际上有一个很长的名字.所以:

class SomeHorriblyLongNameType
class SomeHorriblyLongName(myType: SomeHorriblyLongNameType)
Run Code Online (Sandbox Code Playgroud)

这是冗长而可怕的.我可以SomeHorriblyLongNameType用just 替换,Type但是它与它所涉及的类之间没有明显的联系.表示不快

java static scala inner-classes

36
推荐指数
3
解决办法
2万
查看次数

Java接口使用指南 - 接口中的getter和setter是不是很糟糕?

人们如何看待在界面中使用的最佳指南?什么应该和不应该进入界面?

我听说有人说,作为一般规则,接口必须只定义行为而不是状态.这是否意味着接口不应包含getter和setter?

我的观点:对于制定者来说可能不是这样,但有时我认为吸气剂可以放在界面中.这仅仅是为了强制实现类来实现那些getter,以便表明客户端能够调用那些getter来检查某些东西,例如.

java getter setter interface javabeans

35
推荐指数
4
解决办法
3万
查看次数