小编npi*_*piv的帖子

这种'元类'方法有什么作用?

def metaclass; class << self; self; end; end
Run Code Online (Sandbox Code Playgroud)

有人可以为我解读这一行.我猜它被挤进一个的事实也没有多大帮助.但是在2天前开始看红宝石时,我担心我可能会错误地分开它.

ruby

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

如何在Scala中使用基于类型的过滤器时获取正确的返回类型

以下内容无法编译.我需要先安排这个人吗?

 object People {
  def all = List(
    new Person("Jack", 33),
    new Person("John", 31) with Authority,
    new Person("Jill", 21),
    new Person("Mark", 43)
  )
}

class Person(val name: String, val age: Int) 

trait Authority {
  def giveOrder {
    println("do your work!")
  }
}

object Runner {
  def main(args:List[String]) {
    val boss = People.all.find { _.isInstanceOf [Authority] }.get
    boss.giveOrder // This line doesnt compile
  }
}
Run Code Online (Sandbox Code Playgroud)

scala type-inference filter scala-collections

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

scala集合具有不同的调用方式

这编译

//legal
def s1 = List("aaa","bbb").collect { case x => x.split("\\w") }
Run Code Online (Sandbox Code Playgroud)

以下没有.

// all illegal

// missing parameter type for expanded function ((x$2) => x$2.split{<null>}("\\w"{<null>} {<null>}){<null>}
def s2 = List("aaa","bbb").collect ( _.split("\\w") )

// missing parameter type
def s3 = List("aaa","bbb").collect ( x => x.split("\\w") )

// type mismatch; found : String => Array[java.lang.String] required: PartialFunction[java.lang.String,?]
def s4 = List("aaa","bbb").collect ( (x:String) => x.split("\\w") )
Run Code Online (Sandbox Code Playgroud)

虽然scala编译器正在尽我所能与我沟通我的错误所在,但它正好在我脑海中.

事实也是如此

def s2 = List("aaa","bbb").find ( _.split("\\w").length > 2 )
Run Code Online (Sandbox Code Playgroud)

使用什么时更加令人困惑

scala

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

在scala中解析一个简单的函数声明

这个例子来自Beginning Scala,但它对我来说并没有得到足够的解释.

val f: Int => String = x => "Dude: "+x
Run Code Online (Sandbox Code Playgroud)

我真的有两个问题:

1)第一个示例是否与下面的代码相同:

val f = (x:Int) => "Dude: "+x
Run Code Online (Sandbox Code Playgroud)

2)如果是这样,有人可以详细说明,并稍微剖析第一个例子.String = x部分抛弃了我.我不确定如何阅读该声明

scala

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

绕过红宝石api

我在ruby-doc上浏览RDoc信息时遇到了一些麻烦.现在它可能只是我,来自java世界,但我错过了什么?

例如,当我想要执行文件IO时,我查找文件并找到相应的页面.在那里,我看到所有的静态方法File.那很完美.我在这里找不到的是实际的实例方法fileInstance.read_line,我实际上是通过执行put来找到的fileInstance.methods

我想优化我的工作流程,我相信我会在未来几周内深入钻研ruby api,所以我在这里错过了一些东西吗?我在哪里可以找到api中的read_line示例?

谢谢

ruby

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

Javascript 新运算符*总是* 覆盖返回值?

基于MDN 上关于新操作符如何工作的这些规范:

构造函数返回的对象成为整个 new 表达式的结果。如果构造函数没有明确返回对象,则使用在步骤 1 中创建的对象。(通常构造函数不返回值,但如果他们想覆盖正常的对象创建过程,他们可以选择这样做。)

我相信 new 运算符只会在未提供返回值的情况下覆盖返回值。然而,它似乎总是如此,你永远无法覆盖它。

例如

function test() { return 1; }
new test() // returns {} and not 1
Run Code Online (Sandbox Code Playgroud)

有人可以举例说明情况并非如此,例如他们在文档中所指的吗?

javascript

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