小编Mic*_*ael的帖子

关于scala.math.Integral的问题

什么方法mkNumericOpsmkOrderingOpsscala.math.Integral做,我们如何使用它们?

我知道可以声明函数和对象方法implicit并将其用于隐式转换.但是我不明白为什么会声明traits方法implicit.

BTW,也可以声明类方法implicit吗?

scala implicit-conversion

3
推荐指数
1
解决办法
1167
查看次数

关于Scala中的观点的问题

我看到了一些示例,其中转换函数T => S作为隐式参数传递.Scala 调用此函数view甚至提供特殊的语法糖view bound- 对于这种情况.

但是我们已经进行了隐式转换!我可以views用隐式转换替换这些(即作为隐式参数传递的转换函数)吗??我可以views用隐含的转换来做什么?

scala view implicit-conversion

3
推荐指数
1
解决办法
809
查看次数

关于蛋糕模式的问题

Cake Pattern 文章建议使用性状命名空间:

trait UserRepositoryComponent {  
  val userRepository: UserRepository  
  class UserRepository {...}
}

trait UserServiceComponent {this: UserRepositoryComponent =>   
  val userService: UserService    
  class UserService {...}  
}

class Context extends UserServiceComponent with UserRepositoryComponent {  
  val userRepository = new UserRepository  
  val userService = new UserService  
} 
Run Code Online (Sandbox Code Playgroud)

但是UserServiceComponent,UserRepositoryComponent如果我们可以执行以下操作,我们是否真的需要这些"命名空间特征"(和)?

trait UserRepository {...}

trait UserService {this: UserRepository => 
  ...
}

class Context extends UserRepositoryImpl with UserService
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是我们何时以及为什么需要"命名空间"特征Cake Pattern.

scala traits

3
推荐指数
1
解决办法
811
查看次数

了解无定界延续

假设,我有以下代码(类似 C 的语法):

void foo(int arg) { ... }

内部酒吧(){
...
// 继续调用 
...
}

foo ( bar() )
// 在 foo 调用之后

1) 函数foo调用 function bar,该函数一直运行直到到达带有 的行call with continuation

2) 在这一行continuation创建了一个函数。它代表的休息barfoo。该continuation函数作为参数传递给call with continuation函数。

3)call with continuation函数对参数做任何它想做的事情(例如,它可能只存储在一个全局变量中)并返回。

4) 一旦call with continuation返回,我们立即跳转到带有“after foo invocation”的那一行,其余的barfoo不执行。

5)为了继续执行bar,并foo应明确地调用continuation函数(在(2创建),可能存储在(3))。一旦continuation调用该函数,则在 之后立即继续执行call with continuation。 …

language-agnostic continuations programming-languages functional-programming

3
推荐指数
1
解决办法
215
查看次数

如何在单元测试中读取配置文件?

我有一个标准的maven项目布局.
一些配置文件存储在src/main/conf.
现在我想在单元测试中读取这些文件src/test(例如,从其中一个文件中读取属性).
我怎么能完全这样做?

java unit-testing maven

3
推荐指数
1
解决办法
8237
查看次数

我可以将node.js用作REPL shell吗?

这是一个菜鸟问题.

我试图node.js用作JavaScriptREPL(读取 - 评估 - 打印循环)shell以交互方式使用JavaScript.不幸的是我既不能定义变量也不能定义函

> var x = 'abc'
undefined
> function f() {}
undefined
>

我可以做什么node.js用作REPL shell?

PS我知道我可以使用犀牛壳,但我更喜欢node.

javascript node.js read-eval-print-loop

3
推荐指数
1
解决办法
322
查看次数

如何在Scala中定义错误类型?

假设我为我的Scala应用程序定义了错误.我想他们是Error,WarningOk.我希望 ErrorWarning包含一个人类可读的短信.

我还想分配数字代码(0 - for Ok,1 - for Warning和2 - for Error)来查找错误列表中最严重的错误.

所以,我定义这个错误的东西如下:

object MyErrors {  
  abstract sealed case class MyError(code: Int, maybeMessage: Option[String])
  object Ok extends MyError(0, None)
  final case class Warning(message) extends MyError(1, Some(message)) 
  final case class Error(message) extends MyError(2, Some(message))
}

是否有意义?你会如何实现它?

enums scala

3
推荐指数
1
解决办法
739
查看次数

如何在Scala中编写此配置逻辑?

这是我上一个问题的后续行动

假设我使用以下逻辑(在准Java中)来获取配置参数MyParam:


String myParam = null

if ((myParam = getFromArgs("MyParam")) != null)
   return myParam

if ((myParam = getFromSystemProperties("MyParam")) != null)
   return myParam

if ((myParam = getFromUserConfigFile("MyParam")) != null)
   return myParam

... // and so on

if (myParam == null)
   error("No MyParam")

如何在Scala中编写此逻辑?是Applicative适用在这里吗?

scala applicative

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

在Scala中添加流

我看到至少两种不同的实现:

def add_streams(s1:Stream[Int], s2:Stream[Int]): Stream[Int] =
  Stream.cons(s1.head + s2.head, add_stream(s1.tail, s2.tail))
def add_streams(s1:Stream[Int], s2:Stream[Int]) =
  (s1 zip s2) map {case (x,y) => x + y}

我猜最后一个更有效率,因为它不是递归的.
这是对的吗?你会如何编写这样的函数?

scala stream

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

使用JUnit,Maven和Hudson/Jenkins进行集成测试

我们将使用Hudson/Jenkins构建服务器来构建我们的服务器应用程序(只是调用maven)并对其运行集成测试.我们将准备3 Hudson/Jenkins个作业:用于构建,部署和运行集成测试,这些测试按此顺序相互调用.所有这些工作(构建,部署,集成测试)将每晚运行.

集成测试JUnitmvn test(由"测试" Hudson/Jenkins作业依次调用)编写并调用.由于它们需要服务器启动并运行,我们必须运行该"部署"作业.

是否有意义?是否有任何特殊的服务器来部署应用程序并运行测试或者Hudson/Jenkins可以吗?

junit integration-testing hudson

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