所以我必须遵循以下场景:
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?有没有人能够解决这个问题以及为了让它运转起来我必须做些什么?
例如String,对于任何给定的
val s = "abde"
Run Code Online (Sandbox Code Playgroud)
如何c: Char在2号位置后插入一个角色b?
更新
哪个Scala集合需要考虑在随机位置进行多次有效插入和删除?(假设a String可以转换为该集合.)
让这个坐标与欧几里德距离,
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).
有没有办法让这些计算更具时间效率,特别是对于有一百万点的网格的情况?
哪个是scan和scanLeft?之间的区别?
例如,
(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) 如何获取Array[io.BufferedSource]与给定目录中的通配符匹配的所有文件?
即,如何定义的方法io.Source.fromDir,使得
val txtFiles: Array[io.BufferedSource] = io.Source.fromDir("myDir/*.txt") // ???
Run Code Online (Sandbox Code Playgroud)
我想过滤掉输入数据中的错误输入.我目前正在使用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) 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.
目前我写了一些丑陋的代码
def div(dividend: Int, divisor: Int) = {
val q = dividend / divisor
val mod = dividend % divisor
(q, mod)
}
Run Code Online (Sandbox Code Playgroud)
是否在标准库中指定?
应该Success(转换的孩子)Some(null)在转换为时返回Option?
例如,
Try(null).toOption在scala 2.11.7中返回Some(null)
Success的toOption方法,只需返回即可实现Some(value).如果try的基础值是?,None在转换Try为使用toOption方法的选项时,为什么不返回null?
我在 for 循环中运行一些代码。我想从循环中获取结果并将它们放入一个二维数组中,该数组有 2 列,行数与我迭代循环的次数相同。这是我所拥有的简化版本:
for i in range(10):
'bunch of stuff'
centerx = xc
centery = yc
Run Code Online (Sandbox Code Playgroud)
如何将我的值保存centerx在centery2 列 10 行的二维数组中?任何帮助表示赞赏,谢谢!