小编Kev*_* Li的帖子

Scala - 中缀vs点符号

一个是另一个最好的做法吗?我一直在阅读Odersky等人 Scala书.似乎infix用于很多Collections API函数,而dot则保留给程序员定义的函数.

methods scala call infix-notation

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

"new <function>"后的括号是否可选?

我在Chrome控制台中运行了以下一对代码段,结果相同:

test = new function(){
  var a = 1;
  var b = 2;
  var c = 3;
  this.debugBase = function(){console.log('' + a + b + c)};
};
test
debugBase: function (){console.log('' + a + b + c)}
__proto__: Object
Run Code Online (Sandbox Code Playgroud)

与:

test2 = new (function(){
  var a = 1;
  var b = 2;
  var c = 3;
  this.debugBase = function(){console.log('' + a + b + c)};
})();
test2
debugBase: function (){console.log('' + a + b + c)}
__proto__: Object
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?函数后的括号有什么意义吗?如果没有,为什么人们把它们放在那里?

javascript initialization new-operator

14
推荐指数
1
解决办法
3150
查看次数

Scala中的抽象静态方法

我已经阅读了这篇相关文章,但没有太多具体的答案(或多或少的语言设计不好): 为什么静态方法不能在Java中抽象化

我有点像Scala的新人,这可能吗(可能有特征或什么)?

我尝试让我的基类扩展一个特征,但是当我真的希望它们需要在伴随对象中实现时,需要子类来实现抽象静态方法作为成员方法.

abstract-class static-methods scala

8
推荐指数
1
解决办法
6170
查看次数

用子类参数覆盖子类方法?

当由子类覆盖时,如何强制基本方法接受相同的特定子类实例?

即:

abstract class Animal {
  def mateWith(that: Animal)
}

class Cow extends Animal {
  override def mateWith...?
}
Run Code Online (Sandbox Code Playgroud)

从逻辑上讲,a Cow应该只能够mateWith另一个Cow.但是,如果我这样做override def mateWith(that: Cow),这实际上并没有覆盖基类方法(我想要它,因为我想强制它在子类中存在)​​.

我可以检查以确保其他实例是Cow类型,并且如果不是则抛出异常 - 这是我最好的选择吗?如果我有更多的动物怎么办?我将不得不重复抛出异常的代码.

inheritance overriding scala

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

Akka的硬重启指令?

是否有一种优雅的方式来重新启动演员 - 即清除邮箱和内部状态?

我知道可以通过调用context.stop和重新初始化DeathWatch / Terminated消息来完成,但这有点笨拙.

scala actor akka

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

从Python中的基类导入子类

我有一个基类,它有一个方法,创建一个子类的实例,调用与输入字符串相同.

之前通过将子类和基类放在同一个文件中,并执行类似的操作globals()[name].

但是,现在,我已将子类拆分为其他文件.它们每个都import base在顶部有一个语句,所以我不能简单地在我的基类中导入子类,或者只有一个循环导入链.

这有什么解决方法吗?

base.py中:

from basefactory import BaseFactory
class Base:
    def __init__(self, arg1, arg2):
        ...
    def resolve(self, element):
        className = typing.getClassName(element)
        return BaseFactory.getInstance(className, element, self)
Run Code Online (Sandbox Code Playgroud)

basefactory.py中:

from file1 import *
from file2 import *
...
class BaseFactory:
    @staticmethod
    def getInstance(name, arg1, arg2):
       subclass = globals()[name]
       return subclass(arg1, arg2)
Run Code Online (Sandbox Code Playgroud)

file1.py中:

from base import Base

class subclass1(Base):
    def foo(self):
        return self.arg1
Run Code Online (Sandbox Code Playgroud)

python import inheritance base subclass

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

Scala中的公共变量?

Scala中是否还有公共实例变量?我正在阅读Scala编程,其中包括Scala 2.8.如果我正确理解它,它声称2.8中的变量是默认公开的.

我现在正在尝试为2.9.1.final编写代码,现在默认情况下实例变量是私有的吗?但是public我没有关注的关键字.(有趣的是,似乎它曾经存在于2.x系列中的某个时间,但它在某个地方神秘地消失了.)

我错过了一些明显的东西吗

另外,通过扩展,是否有一种简单的方法可以将传递给类构造函数的变量声明为公共(因为现在它们似乎也具有默认的私有可见性)?

例:

class Instance(label: String, attributes: Array[Int]){
  val f = 0
}
Run Code Online (Sandbox Code Playgroud)

Eclipse的声称label,attributesf都是私有的.Scala 2.9.1.final被用作库.

eclipse variables scala public scala-ide

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

在Python中实现字符串函数?

有没有关于如何在Python中实现Python字符串函数的文档?

我知道str是一个内置模块,因此它的功能是用C实现的.但是不管它有代码吗?在Pypy怎么样?从我到目前为止所读到的,他们已经在Python中重新实现了许多内置模块.

示例问题:如何实现字符串的split方法?(没有编写我自己的实现)

编辑:我不是在寻找用C编写的实现(这是Python/CPython源代码中的默认实现).

python string implementation pypy

0
推荐指数
1
解决办法
1384
查看次数