小编Fra*_*mas的帖子

如何覆盖案例类伴随中的应用

所以情况就是这样.我想像这样定义一个case类:

case class A(val s: String)
Run Code Online (Sandbox Code Playgroud)

我想定义一个对象,以确保在创建类的实例时,'s'的值始终为大写,如下所示:

object A {
  def apply(s: String) = new A(s.toUpperCase)
}
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为Scala抱怨apply(s:String)方法定义了两次.我理解case类语法会自动为我定义它,但是我不能用另一种方法来实现它吗?我想坚持使用case类,因为我想将它用于模式匹配.

scala pattern-matching case-class

81
推荐指数
5
解决办法
4万
查看次数

Scala中的显式类型转换

可以说我有以下代码:

abstract class Animal
case class Dog(name:String) extends Animal
var foo:Animal = Dog("rover")
var bar:Dog = foo //ERROR!
Run Code Online (Sandbox Code Playgroud)

如何修复此代码的最后一行?基本上,我只想做一些类似C语言的事情:

var bar:Dog = (Dog) foo
Run Code Online (Sandbox Code Playgroud)

scala type-conversion

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

git push后本地执行挂钩?

我看过githooks手册页,但除非我遗漏了一些东西,否则我看不到本地推后git钩子的选项.在将主分支推送到GitHub仓库之后,我想有一个更新我的Web服务器上的api文档(我已经有一个脚本).当然我可以编写自己的脚本,结合git push和api docs run,但感觉有点不优雅.

git githooks

63
推荐指数
5
解决办法
4万
查看次数

MutableList和ListBuffer之间的区别

Scala MutableListListBuffer类之间有什么区别scala.collection.mutable?你什么时候使用一个与另一个?

我的用例是一个线性序列,我可以有效地删除第一个元素,prepend和append.什么是最好的结构?

scala scala-collections

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

Haskell:确定函数arity的函数?

是否可以编写一个函数arity :: a -> Integer来确定任意函数的arity,如此

> arity map
2
> arity foldr
3
> arity id
1
> arity "hello"
0
Run Code Online (Sandbox Code Playgroud)

haskell introspection arity

21
推荐指数
3
解决办法
1960
查看次数

Scala转换设置为地图

如何将Set("a","b","c")转换为Map("a" - > 1,"b" - > 2,"c" - > 3)?我认为它应该与toMap一起使用.

scala scala-collections

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

Scala和C++ 11的类型推断有什么区别?

我很好奇Scala和C++ 11的类型推断之间的区别是什么.在哪种情况下,我必须用一种语言指定类型而不是另一种语言?一个区别似乎是函数的返回类型总是必须在C++ 11中指定,尽管decltype具有尾随返回类型的新函数语法允许指定推断类型.

c++ scala type-inference language-comparisons c++11

17
推荐指数
2
解决办法
820
查看次数

Java/Scala中的非短路逻辑(布尔)运算符有很好的用途吗?

我最近发现,爪哇(和Scala)包括非短路逻辑运算符&,|^.我之前认为这些只能作为按位运算符.虽然可能存在争论^,但我不能想到使用非短路逻辑运算符的非常好的理由 - 尽管可以肯定,我可以设想一个例子.

这些运营商有用吗?它们似乎更容易导致难以捕获的错误.

scala> def foo = {
     |   println("foo")
     |   true
     | }
foo: Boolean

scala> def bar = {
     |   println("bar")
     |   true
     | }
bar: Boolean

scala> foo || bar
foo
res5: Boolean = true

scala> foo | bar
foo
bar
res6: Boolean = true
Run Code Online (Sandbox Code Playgroud)

java scala

12
推荐指数
2
解决办法
1247
查看次数

Python中的Pointfree函数组合

我有一些谓词,例如:

is_divisible_by_13 = lambda i: i % 13 == 0
is_palindrome = lambda x: str(x) == str(x)[::-1]
Run Code Online (Sandbox Code Playgroud)

并希望在逻辑上将它们组合在一起,如:

filter(lambda x: is_divisible_by_13(x) and is_palindrome(x), range(1000,10000))
Run Code Online (Sandbox Code Playgroud)

现在的问题是:这种组合可以用无样式编写,例如:

filter(is_divisible_by_13 and is_palindrome, range(1000,10000))
Run Code Online (Sandbox Code Playgroud)

这当然不具有期望的效果,因为λ函数的真值是Trueand并且or是短路运算符.我想出的最接近的事情是定义一个类P,它是一个简单的谓词容器,它实现__call__()并拥有方法and_()or_()组合谓词.定义P如下:

import copy

class P(object):
    def __init__(self, predicate):
        self.pred = predicate

    def __call__(self, obj):
        return self.pred(obj)

    def __copy_pred(self):
        return copy.copy(self.pred)

    def and_(self, predicate):
        pred = self.__copy_pred()
        self.pred = lambda x: pred(x) and predicate(x) …
Run Code Online (Sandbox Code Playgroud)

python predicate pointfree function-composition

9
推荐指数
1
解决办法
2514
查看次数

GIT预接收挂钩

有没有办法使用服务器端预接收挂钩更改正在推送到服务器的文件?

假设我想在文件的末尾添加一些内容,例如:

//End of Org
Run Code Online (Sandbox Code Playgroud)

每次有人推我的回购.

有没有办法可以更改正在使用的文件git hooks

git githooks

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