小编zw0*_*0rk的帖子

将类作为参数传递会导致"不可更新"错误

我试图将一个类作为参数传递给某个函数,它将实例化该类并返回它.这是我的代码:

module A.Views {
  export class View { ... }
}

module A.App {
  export class MyApp {
    ...
    registerView(viewKlass:A.Views.View):void
    {
        var test = new viewKlass;
    } 
  }
}
Run Code Online (Sandbox Code Playgroud)

当我试图编译这个时,我得到:

(...): Value of type 'Views.View' is not newable.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

如果newable类型值是对象构造函数,我如何在运行时传递构造函数?

typescript

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

Scala(java)grpc async拦截器状态传播

问题标题可能不那么有用,因为我正在尝试实现各种功能.我想根据他发送的标题授权调用者,并将此信息传播给gRPC方法处理程序.问题在于授权过程的异步性质.我最终得到了这个:

case class AsyncContextawareInterceptor[A](
    f: Metadata ? Future[Either[Status, (Context.Key[A], A)]]
)(implicit val system: ActorSystem)
    extends ServerInterceptor
    with AnyLogging {
  import system.dispatcher

  sealed trait Msg
  case object HalfClose extends Msg
  case object Cancel extends Msg
  case object Complete extends Msg
  case object Ready extends Msg
  case class Message[T](msg: T) extends Msg

  override def interceptCall[ReqT, RespT](call: ServerCall[ReqT, RespT],
                                          headers: Metadata,
                                          next: ServerCallHandler[ReqT, RespT]): ServerCall.Listener[ReqT] =
    new ServerCall.Listener[ReqT] {
      private val stash = new java.util.concurrent.ConcurrentLinkedQueue[Msg]()
      private var interceptor: Option[ServerCall.Listener[ReqT]] = None

      private def …
Run Code Online (Sandbox Code Playgroud)

java scala grpc scalapb grpc-java

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

Clojure代数数据类型

defadtclojure.contrib.types中找到了宏.不幸的是,在clojure中没有关于ADT使用的有用文档.我用谷歌搜索了几个小时,发现了一些关于它的信息.clojure中的ADT是什么?怎么用?任何信息都会有所帮助:)

clojure algebraic-data-types

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

用C /中的ffmpeg以编程方式捕获X11区域

ffmpeg有一个输入格式选项 - x11grab允许捕获指定区域并将其输出到文件/流.我试图以编程方式执行相同的操作,但我没有找到任何非基本的教程/ ffmpeg API参考.

我想知道,如何用avformat_input_file或类似的东西打开x11区域.或者我应该使用XCopyArea/etc吗?

(任何编程语言都会满足)

c ffmpeg

5
推荐指数
1
解决办法
606
查看次数