小编Dan*_*ral的帖子

Unix管道问题

我想知道,如果有办法打印与进程相关的管道,比如信号量的"ipcs -s".

unix pipe

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

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

Scala反射错误:这是一个内部模块,在InstanceMirror上使用reflectModule来获取其ModuleMirror

关注这个问题,我试图弄清楚如何在一个对象上调用一个方法.相关定义是:

trait ThirdParty { def invoke = println("right") }
trait WeatherIcon { def invoke = println("wrong") }
class MyClass {
    object objA extends ThirdParty
    object objB extends WeatherIcon
}
Run Code Online (Sandbox Code Playgroud)

我有一个SymbolobjA这样的:

import reflect.runtime.universe._

val stuff = typeOf[MyClass].members.filter(_.isValue).filter(_.typeSignature <:< typeOf[ThirdParty])
Run Code Online (Sandbox Code Playgroud)

返回一个Iterable元素,所以让我们说:

val objASymbol = stuff.head.asModuleSymbol
Run Code Online (Sandbox Code Playgroud)

然后我根据这个问题尝试了这个:

val mirror = runtimeMirror(getClass.getClassLoader)
mirror.reflectModule(objASymbol)
Run Code Online (Sandbox Code Playgroud)

这导致了主题上引用的错误消息:

java.lang.Error: this is an inner module, use reflectModule on an InstanceMirror to obtain its ModuleMirror
    at scala.reflect.runtime.JavaMirrors$JavaMirror.reflectModule(JavaMirrors.scala:118)
    at scala.reflect.runtime.JavaMirrors$JavaMirror.reflectModule(JavaMirrors.scala:60)
Run Code Online (Sandbox Code Playgroud)

问题是我无法弄清楚这条错误信息告诉我要做什么!

macros scala scala-2.10

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

方法收集Scala 2.7

我正在寻找collectscala 2.7中的方法,但我似乎找不到适用的调用.有没有相当于collect我可以在scala中使用的东西?

要清楚我想要从列表中过滤元素并将过滤后的元素映射到新类型.

scala list

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

在Scala中使用存在类型时,为什么忽略类型参数的边界?

我的意思是:

scala> class Bounded[T <: String](val t: T)
defined class Bounded

scala> val b: Bounded[_] = new Bounded("some string")
b: Bounded[_] = Bounded@2b0a141e

scala> b.t
res0: Any = some string
Run Code Online (Sandbox Code Playgroud)

为什么res0的类型是Any而不是String?它肯定知道bt至少是一个String.写作

val b: Bounded[_ <: String] = new Bounded("some string")
Run Code Online (Sandbox Code Playgroud)

有效,但对于类本身的声明而言是多余的.

scala type-inference bounded-types type-parameter

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

Scala Parser,为什么不"轻拍<~pat~> pat"工作?

试用一个简单的解析器组合器,我遇到了编译错误.

我想解析一下 - "Smith,Joe"进入Name对象,如Name(Joe,Smith).我想这很简单.

这是与之相关的代码:

    import util.parsing.combinator._

    class NameParser extends JavaTokenParsers {
      lazy val name: Parser[Name] = 
        lastName <~ "," ~> firstName ^^ {case (l ~ f) => Name(f, l)}
      lazy val lastName = stringLiteral
      lazy val firstName = stringLiteral
    }

    case class Name(firstName:String, lastName: String)
Run Code Online (Sandbox Code Playgroud)

我正在测试它

object NameParserTest {
  def main(args: Array[String]) {
    val parser = new NameParser()
    println(parser.parseAll(parser.name, "Schmo, Joe"))
  }
}
Run Code Online (Sandbox Code Playgroud)

获取编译错误:

error: constructor cannot be instantiated to expected type;
found   : NameParser.this.~[a,b]
required: java.lang.String
lazy val …
Run Code Online (Sandbox Code Playgroud)

scala parser-combinators

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

如何使用Salat for mongodb执行像"IN"查询这样的SQL?

我有很多记录,下面的结构保存在mongodb中.

case class User(_id:ObjectId = new ObjectId, email:String, role:String, employeeID:Int, createdOn:DateTime)
Run Code Online (Sandbox Code Playgroud)

如何使用salat在mongodb上执行"IN"之类的查询?

例如

val data = UserDAO.find(MongoDbObject("employeeID" -> List(2,4,5)) // (NOT working)
Run Code Online (Sandbox Code Playgroud)

谢谢Pawan

scala mongodb salat

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

如何获取Perl中正在读取的文件的名称?

在以下Perl模式中:

while(<>) {
  # do stuff
}
Run Code Online (Sandbox Code Playgroud)

有没有办法获取目前打开的文件的名称?

为了清楚起见,我希望收到很多args,这样循环就会处理多个文件.我想要当前正在处理的文件的名称.

perl

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

使用Java的Net库时如何伪造特定的浏览器客户端?

我的一个小程序刚刚爆发,因为看起来,我以编程方式浏览的网站现在假定Java请求来自手机,我正在寻找的链接不在他们的移动页面上.

所以我想伪造Internet Explorer访问权限.我如何用java.net做到这一点?

java http http-headers

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

为什么scala无法从特征中识别方法

首先,我有特点:

import _root_.com.thoughtworks.selenium._
import org.scalatest.matchers.ShouldMatchers
import org.scalatest.matchers.ShouldMatchers._

trait SeleniumField extends ShouldMatchers {

  val name : String

  def selenium : Selenium

  def text : String = { return selenium.getValue(name) }

  def is(v:String) : Boolean  = { this.value equals v }

  def set(v:String) =  { selenium.`type`( name , v ) }

}
Run Code Online (Sandbox Code Playgroud)

然后我用这个特性创建scala类:

import _root_.com.thoughtworks.selenium._

class WebAppField(sel:Selenium, nam: String) extends SeleniumField {

  def selenium = sel

  override val name = nam
}
Run Code Online (Sandbox Code Playgroud)

然后当我尝试在代码中使用它时:

val rodzaj =  new WebAppField(selenium, "RODZAJ")
rodzaj text should …
Run Code Online (Sandbox Code Playgroud)

scala scala-2.8

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