小编Loi*_*oic的帖子

IntelliJ可以自动完成"新"表达式的构造函数参数吗?

如果我的类有一个非空的构造函数,是否可以自动完成new表达式中的参数?

使用Eclipse时,如果在光标位于括号之间时按ctrl+ space:

MyClass myObject = new MyClass();
Run Code Online (Sandbox Code Playgroud)

它会找到合适的参数.

-->  MyClass myObject = new MyClass(name, value);
Run Code Online (Sandbox Code Playgroud)

当我在使用ctrl+ shift+ spacebar之后new,Intellij向我展示了构造函数,但是我不能选择一个用于自动完成.我错过了一个选项吗?

intellij-idea

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

如何从Scala中的Collection中获取选项?

有没有办法,只使用Scala集合API,在尝试通过索引获取元素时获取List中的Option?

我正在寻找相应的这个功能,它存在吗?

def optionalValue[T](l: List[T], index: Int) = {
  if (l.size < (index+1)) None 
  else Some(l(index))
}
Run Code Online (Sandbox Code Playgroud)

谢谢

scala scala-option

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

如何在类级别为隐式参数提供默认值

我正在尝试使用一些带隐式参数的方法来定义一个类:

object Greetings {
  def say(name: String)(implicit greetings: String): String = greetings + " " +name 
}
Run Code Online (Sandbox Code Playgroud)

我从另一个班级使用这个班级

implicit val greetings = "hello"                //> greetings  : java.lang.String = hello
Greetings.say("loic")                           //> res0: String = hello loic
Greetings.say("loic")("hi")                     //> res1: String = hi loic
Run Code Online (Sandbox Code Playgroud)

我的问题是它只有在我的Greetings对象之外定义隐式val时才有效.我希望能够提供带有隐式参数的方法,在我的类中使用默认值,以便更容易地使用我的API(如Scala集合API).

所以我想这样做,但它不起作用(未找到隐含值):

object Greetings {
  implicit val greetings = "hello"    
  def say(name: String)(implicit greetings: String): String = greetings + " " +name 
}
Run Code Online (Sandbox Code Playgroud)

然后

Greetings.say("loic")                         
Greetings.say("loic")("hi") 
Run Code Online (Sandbox Code Playgroud)

我知道我可以定义一个默认值,(implicit greetings: String = "hello")但我想在类级别进行,以避免重复,如果有很多方法.

我想我错过了一些东西,因为我看到它CanBuildFrom是在List …

scala

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

如何在PlayFramework中使用Akka Streams SourceQueue

我想使用SourceQueue将元素动态推送到Akka Stream源.Play控制器需要Source才能使用该chuncked方法传输结果.
由于Play使用自己的Akka Stream Sink,我无法使用Sink实现源队列,因为在方法使用之前源将被消耗chunked(除非我使用下面的hack).

如果我使用反应流发布器预先实现源队列,我能够使它工作,但它是一种"肮脏的黑客":

def sourceQueueAction = Action{

    val (queue, pub) = Source.queue[String](10, OverflowStrategy.fail).toMat(Sink.asPublisher(false))(Keep.both).run()

    //stupid example to push elements dynamically
    val tick = Source.tick(0 second, 1 second, "tick")
    tick.runForeach(t => queue.offer(t))

    Ok.chunked(Source.fromPublisher(pub))
  }
Run Code Online (Sandbox Code Playgroud)

是否有更简单的方法在PlayFramework中使用Akka Streams SourceQueue?

谢谢

scala akka playframework akka-stream

18
推荐指数
1
解决办法
3307
查看次数

如何在Scala中将Range转换为List或Array

我想将一系列Int转换为List或Array.我在Scala 2.8中使用此代码:

var years: List[Int] = List()
val firstYear = 1990
val lastYear = 2011

firstYear.until(lastYear).foreach(
  e => years = years.:+(e)
)
Run Code Online (Sandbox Code Playgroud)

我想知道是否有其他语法可能,为了避免使用foreach,我想在这部分代码中没有循环.

非常感谢!

卢瓦克

scala

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

我怎样才能使用笛卡尔积| @ | 最新版本的猫?

我已经使用猫0.2到猫0.6迁移了一些代码,我的代码不再畏缩了:

import cats.data.Validated
import cats.std.all._

val valid1: Validated[List[String], Int] = valid(1)
val valid2: Validated[List[String], Int] = valid(2)
(valid1 |@| valid2).map{_+_}
Run Code Online (Sandbox Code Playgroud)

编译说:

Error:(48, 6) value |@| is not a member of 

cats.data.Validated[List[String],Int]
(valid1 |@| valid2).map{_+_}
    ^
Run Code Online (Sandbox Code Playgroud)

我没有在文档中找到任何关于此的内容,如果我有导入或声明隐含的或什么?

我设法使用product而不是|@|它产生嵌套元组不方便.假设我有4个经过验证可以合并:

  (valid1 product valid2 product valid3 product valid4)
    .map{case (((v1, v2), v3), v4) => v1 + v2 + v3 + v4}
Run Code Online (Sandbox Code Playgroud)

谢谢

scala scala-cats

12
推荐指数
1
解决办法
1913
查看次数

隐式def中的Scala更高级别的类型失败,"无法找到隐含值"

我正在使用隐式def来构建递归HList类型,以匹配几种更高级的类型HList.我很受这篇文章的启发.

这段代码完美运行:

sealed trait HList {
  type Plus[L <: HList] <: HList
}

class HNil extends HList {
  type Plus[L <: HList] = L

  def ::[T](v: T) = HCons(v, this)
}

case class Appender[L1 <: HList, L2 <: HList, R <: HList](fn: (L1, L2) => R) {
  def apply(l1: L1, l2: L2) = fn(l1, l2)
}

object HNil extends HNil

object HList {
  def ++[L1 <: HList, L2 <: HList](l1: L1, l2: L2)(implicit f: …
Run Code Online (Sandbox Code Playgroud)

scala implicit higher-kinded-types

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

Scala中的反函数

有没有办法表达scala中任何函数的反函数?

例如,如果我有这样的函数f

(x:Int)=> x + 1

我想能够编写一个反函数g

(f(x):Int)=> x //不是有效的scala语法

要么

(x:Int)=> inverse(f(x))// inverse将返回(x => x -1)

你知道在scala中做这种事情的方法吗?

NB = x => x + 1仅用于示例我正在寻找解决此类任务的通用方法

谢谢!

scala function inverse

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

TF/IDF可以考虑课程

使用classsication algorythm(例如naive bayes或SVM)和StringToWordVector,是否可以使用TF/IDF并计算整个当前类中的术语频率,而不是只查看单个文档?

让我解释一下,我希望计算能够给出给定类(不仅仅是给定文档)非常频繁但在整个语料库中不常见的单词的高分.

开箱即用还是需要一些额外的开发?

谢谢 :)

machine-learning weka

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

如何使HDFS在docker swarm中工作

我在使我的HDFS设置在docker swarm中工作时遇到麻烦。为了理解问题,我将设置减少到最低限度:

  • 1台物理机
  • 1个名称节点
  • 1个数据节点

此设置在docker-compose上运行良好,但在docker-swarm下使用相同的compose文件失败。

这是撰写文件:

version: '3'
services:
  namenode:
      image: uhopper/hadoop-namenode
      hostname: namenode
      ports:
        - "50070:50070"
        - "8020:8020"
      volumes:
        - /userdata/namenode:/hadoop/dfs/name
      environment:
        - CLUSTER_NAME=hadoop-cluster

  datanode:
    image: uhopper/hadoop-datanode
    depends_on:
      - namenode
    volumes:
      - /userdata/datanode:/hadoop/dfs/data
    environment:
      - CORE_CONF_fs_defaultFS=hdfs://namenode:8020
Run Code Online (Sandbox Code Playgroud)

为了对其进行测试,我仅在core-site.xml中使用此简单配置在主机(物理)计算机上安装了hadoop客户端:

<configuration>
  <property><name>fs.defaultFS</name><value>hdfs://0.0.0.0:8020</value></property>
</configuration>
Run Code Online (Sandbox Code Playgroud)

然后我运行以下命令:

hdfs dfs -put test.txt /test.txt
Run Code Online (Sandbox Code Playgroud)

使用docker-compose(只需运行docker-compose即可),它可以工作,并且文件以HDFS格式编写。

使用docker-swarm,我正在运行:

docker swarm init 
docker stack deploy --compose-file docker-compose.yml hadoop
Run Code Online (Sandbox Code Playgroud)

然后,当所有服务启动时,我将文件放到HDFS上,失败如下:

INFO hdfs.DataStreamer: Exception in createBlockOutputStream
org.apache.hadoop.net.ConnectTimeoutException: 60000 millis timeout while waiting for channel to be ready for connect. ch : …
Run Code Online (Sandbox Code Playgroud)

hadoop hdfs docker docker-swarm

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