在Haskell中,ghci可以(以及如何)在提示符中获取lambda符号,例如像这样
?>
Run Code Online (Sandbox Code Playgroud)
使用Linux Ubuntu终端.
我在 for 循环中运行一些代码。我想从循环中获取结果并将它们放入一个二维数组中,该数组有 2 列,行数与我迭代循环的次数相同。这是我所拥有的简化版本:
for i in range(10):
'bunch of stuff'
centerx = xc
centery = yc
Run Code Online (Sandbox Code Playgroud)
如何将我的值保存centerx在centery2 列 10 行的二维数组中?任何帮助表示赞赏,谢谢!
尝试int使用%v格式化程序将值插入到字符串中,如下所示,但没有打印任何内容,
package main
import "fmt"
func inc(i int) int {
return i + 1
}
func main() {
fmt.Sprintln("inc 1 equal %v", inc(1))
}
Run Code Online (Sandbox Code Playgroud)
如何插入一个int值?
考虑一个可能有大量成员的案例类; 为了说明这个案例假设两个论点,如
case class C(s1: String, s2: String)
Run Code Online (Sandbox Code Playgroud)
因此假设一个大小至少为那么多参数的数组,
val a = Array("a1", "a2")
Run Code Online (Sandbox Code Playgroud)
然后
scala> C(a(0), a(1))
res9: C = c(a1,a2)
Run Code Online (Sandbox Code Playgroud)
但是,是否存在一种案例类实例化方法,其中不需要为数组中的每个元素引用任何(可能是大量)预定义类成员?
在Scala字符串中需要包含这个文字的逐字:\usepackage{x}.因此,期望的是
val s = """ ... \usepackage{X} ... """
println(s)
... \usepackage{X} ...
Run Code Online (Sandbox Code Playgroud)
到目前为止的尝试包括,
scala> """\usepackage{X}"""
<console>:1: error: error in unicode escape
"""\usepackage{X}"""
^
scala> raw"""\usepackage{X}"""
<console>:1: error: error in unicode escape
raw"""\usepackage{X}"""
^
Run Code Online (Sandbox Code Playgroud)
单双引号字符串也证明不成功.
在http://docs.scala-lang.org/overviews/core/string-interpolation.html之后,一个工作示例包括
scala> raw"a\nb"
res1: String = a\nb
Run Code Online (Sandbox Code Playgroud)
这不包括unicode案件.
转换true: Boolean为String的一种方法是
scala> true.toString
res: String = true
Run Code Online (Sandbox Code Playgroud)
然而,
scala> true.asInstanceOf[String]
java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String
Run Code Online (Sandbox Code Playgroud)
为什么后者尝试失败?
非常感谢
我试图找出一种方法来根据元素之间的x距离对列表中的所有对象进行分组.
例如,如果距离是1那么
List(2,3,1,6,10,7,11,12,14)
Run Code Online (Sandbox Code Playgroud)
会给
List(List(1,2,3), List(6,7), List(10,11,12), List(14))
Run Code Online (Sandbox Code Playgroud)
我只能提出棘手的方法和循环,但我想必须有一个更清洁的解决方案.
考虑一下 Array[Any]
val a = Array(1,2,"a")
a: Array[Any] = Array(1, 2, a)
Run Code Online (Sandbox Code Playgroud)
我们可以收集所有类型的物品Int,
a.collect { case v: Int => v }
res: Array[Int] = Array(1, 2)
Run Code Online (Sandbox Code Playgroud)
虽然如何定义一个收集给定类型的项目的函数,但是没有成功尝试过,
def co[T](a: Array[Any]) = a.collect { case v: T => v }
warning: abstract type pattern T is unchecked since it is eliminated by erasure
Run Code Online (Sandbox Code Playgroud)
提供
co[Int](a)
ArraySeq(1, 2, a)
co[String](a)
ArraySeq(1, 2, a)
Run Code Online (Sandbox Code Playgroud) 我正在尝试读取一个 csv 文件并将其作为双精度数组 ( Array[Array[Double]])的数组返回。如何逐行读取文件并立即打印出来很清楚,但不知道如何将其存储在二维数组中。
def readCSV() : Array[Array[Double]] = {
val bufferedSource = io.Source.fromFile("/testData.csv")
var matrix :Array[Array[Double]] = null
for (line <- bufferedSource.getLines) {
val cols = line.split(",").map(_.trim)
matrix = matrix :+ cols
}
bufferedSource.close
return matrix
}
Run Code Online (Sandbox Code Playgroud)
有一些类型问题,然后意识到我没有做我认为我在做的事情。任何将我指向正确轨道的帮助将不胜感激。
例如,对于给定范围
val range = (1 to 5).toArray
val ready = Array(2,4)
Run Code Online (Sandbox Code Playgroud)
缺失的值(未准备好)是
val missing = range.toSet diff ready.toSet
Set(5, 1, 3)
Run Code Online (Sandbox Code Playgroud)
真实用例包括数千个范围实例,其中包含(可能)数千个缺失或未准备好的值.Scala中是否有更节省时间的方法?