小编elm*_*elm的帖子

Scala用if else返回布尔值

所以我必须遵循以下场景:

 def check(): Boolean = {
    for ((digit1,digit2,digit3) <- SetOfDigits){
      if ((1,2,5) == (digit1,digit2,digit3))
        true
      else
        false
}
  }

val SetOfDigits = Set((0,2,3),(1,5,6),(7,10,2),(1,2,5))
Run Code Online (Sandbox Code Playgroud)

现在的问题是函数必须返回一个布尔值,但它总是告诉我这里的返回类型是Unit?该函数应该迭代SetOfDigits,如果它找到相同的东西,(1,2,5)它应该返回true,否则为false?有没有人能够解决这个问题以及为了让它运转起来我必须做些什么?

boolean scala function set

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

在Scala字符串中插入字符

例如String,对于任何给定的

val s = "abde"
Run Code Online (Sandbox Code Playgroud)

如何c: Char在2号位置后插入一个角色b

更新

哪个Scala集合需要考虑在随机位置进行多次有效插入和删除?(假设a String可以转换为该集合.)

string scala ropes scalaz scala-collections

7
推荐指数
3
解决办法
8620
查看次数

Scala中的高效最近邻搜索

让这个坐标与欧几里德距离,

case class coord(x: Double, y: Double) {
  def dist(c: coord) = Math.sqrt( Math.pow(x-c.x, 2) + Math.pow(y-c.y, 2) ) 
}
Run Code Online (Sandbox Code Playgroud)

然后让一个坐标网格

val grid = (1 to 25).map {_ => coord(Math.random*5, Math.random*5) }
Run Code Online (Sandbox Code Playgroud)

然后对于任何给定的坐标

val x = coord(Math.random*5, Math.random*5) 
Run Code Online (Sandbox Code Playgroud)

最近的点x

val nearest = grid.sortWith( (p,q) => p.dist(x) < q.dist(x) )
Run Code Online (Sandbox Code Playgroud)

所以前三个最接近的是nearest.take(3).

有没有办法让这些计算更具时间效率,特别是对于有一百万点的网格的情况?

algorithm scala kdtree nearest-neighbor r-tree

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

Scala中scan和scanLeft之间的区别

哪个是scanscanLeft?之间的区别?

例如,

(1 to 3).scan(10)(_-_)
res: Vector(10, 9, 7, 4)

(1 to 3).scanLeft(10)(_-_)
res: Vector(10, 9, 7, 4)
Run Code Online (Sandbox Code Playgroud)

相比之下,结果却相同

(1 to 3).scanRight(10)(_-_)
res: Vector(-8, 9, -7, 10)
Run Code Online (Sandbox Code Playgroud)

scala fold scala-collections

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

在Scala中查找与通配符String匹配的文件

如何获取Array[io.BufferedSource]与给定目录中的通配符匹配的所有文件?

即,如何定义的方法io.Source.fromDir,使得

val txtFiles: Array[io.BufferedSource] = io.Source.fromDir("myDir/*.txt") // ???
Run Code Online (Sandbox Code Playgroud)

注意到文件实用程序阿帕奇百科全书IO,但非常优选是没有外部依赖性Scala的API为基础的方法.

scala file wildcard scala-collections

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

将列表[尝试[A]]转换为Scala中的列表[A]

我想过滤掉输入数据中的错误输入.我目前正在使用scala.util.Try包装任何异常.以下是3I抛出a的简单示例NumberFormatException.我想知道在Scala中是否有更好的方法可以做到这一点?

val data = List ( ("Joe", "20"), ("James", "30"), ("Pete", "3I") )

scala> val parsedData = data.map{ d => Try{Person( d._1, d._2.toInt ) }}
parsedData: List[scala.util.Try[Person]] = List(Success(Person(Joe,20)), Success(Person(James,30)), Failure(java.lang.NumberFormatException: For input string: "3I"))

scala> val validdata = parsedData.map{ x => x match {
     | case Success(s) => Some(s)
     | case Failure(f) => None }
     | }
validdata: List[Option[Person]] = List(Some(Person(Joe,20)), Some(Person(James,30)), None)

scala> validdata.flatten
res13: List[Person] = List(Person(Joe,20), Person(James,30))
Run Code Online (Sandbox Code Playgroud)

error-handling scala exception try-catch

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

Scala Console.readInt已弃用

scala的命令行解释器显示:

scala> Console.readInt
warning: there was one deprecation warning; re-run with -deprecation for details
res0: Int = 65
Run Code Online (Sandbox Code Playgroud)

难道Console.readInt真的过时?如果是,采取输入的正确方法是什么?

我在OS X 10.10.5上使用Scala版本2.11.7.

scala

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

是否存在产生商和提醒的除法运算?

目前我写了一些丑陋的代码

    def div(dividend: Int, divisor: Int) = {
        val q = dividend / divisor
        val mod = dividend % divisor
        (q, mod)
    } 
Run Code Online (Sandbox Code Playgroud)

是否在标准库中指定?

math scala division modulo

7
推荐指数
3
解决办法
4247
查看次数

Scala Try的toOption方法返回Some(null)

应该Success(转换的孩子)Some(null)在转换为时返回Option

例如, Try(null).toOption在scala 2.11.7中返回Some(null) Success的toOption方法,只需返回即可实现Some(value).如果try的基础值是?,None在转换Try为使用toOption方法的选项时,为什么不返回null

scala

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

使用 For 循环结果在 Python 中创建二维数组

我在 for 循环中运行一些代码。我想从循环中获取结果并将它们放入一个二维数组中,该数组有 2 列,行数与我迭代循环的次数相同。这是我所拥有的简化版本:

 for i in range(10):

      'bunch of stuff'

      centerx = xc
      centery = yc
Run Code Online (Sandbox Code Playgroud)

如何将我的值保存centerxcentery2 列 10 行的二维数组中?任何帮助表示赞赏,谢谢!

python arrays

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