我将scala类定义如下:
scala> class test2(private var a:Int) {
| var t1 = new test2(10)
| println(t1.a)
| }
defined class test2
现在,当我尝试创建这个类的对象时,我会得到堆栈溢出错误(参见下面)。
scala> var t2 = new test2(5)
java.lang.StackOverflowError
... 1024 elided
有人能解释一下为什么会出现这个错误吗?
这不是重复的。链接中发布的问题与java有关。我的问题与
我正在尝试从结果集中获取一个名为-> id的映射。
val isp = SQL("select id, name from internet_service_providers").map { x => x[String]("name") -> x[String]("id") }
我无法理解为什么我会犯这个错误。
Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)L
讨论了如何创建一个绑定到一个arg函数的元组。这会导致
scala> println(1, 2)
(1,2)
答案是编译器允许在没有括号的情况下调用一个arg函数,因此从逻辑上讲,这是一个带有元组的println调用。
但不能使用单个元组参数调用println
scala> val t = (1, 2)
t: (Int, Int) = (1,2)
scala> println t
<console>:6: error: value t is not a member of Unit
println t
^
所以有别的事情发生了
我有一个问题,“客户邀请”,一个人可以邀请另一个人,而邀请是有效的,只有当被邀请的人邀请某人。
为了解决这个问题,我想写一个树算法,而不是一个图算法。
我试图用Scala编写这个树结构,下面是我如何开始的:
case class MyNode(key:Int, children:Option[List[MyNode]] = None)
class MyNodeManager {
def find(key: Int, tree: Option[List[MyNode]]) = tree match {
case None => None
case (h :: t)
我正在尝试在Scala中使用JodaTime。所以我照做了
import org.joda.time.DateTime
val dt = new DateTime(2011, 10, 8, 18, 30) // try to set to 6:30 pm, Oct 8, 2011
不幸的是,Scala认为我正在尝试使用DateTime(对象)构造函数而不是5int构造函数,并且毫不奇怪,Tuple5不是JodaTime所期望的那种对象。
如何告诉Scala使用5-int构造函数?
托德
可能重复:
在蟒蛇里我能做到
>>> (a,b) = (1,2)
>>> (b,a) = (a,b)
>>> (a,b)
(2, 1)
但在scala中:
Welcome to Scala version 2.8.1.final (OpenJDK Server VM, Java 1.6.0_20).
Type in expressions to have them evaluated.
Type :help for more information.
scala> var (a,b) = (1,2)
a: Int = 1
b:
当我预先定义一个元组+=并将其添加到一个映射中时,我不明白为什么mapEntry会工作,同时试图直接添加,而绕过创建不必要的变量mapEntry失败。很可能我漏掉了一些显而易见的东西。提前谢谢。
这是有用的: map += mapEntry,而这失败了: map += (“键到汤姆”,Person(“汤姆”,“马克思”))
以下是我完整的scala会话
Welcome to Scala version 2.10.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_45).
Type in expressions to have them evalu
我是scala的新手,我只是创建了几个示例来更好地理解它。这里我似乎找不出这个问题--我在java程序中创建了一个String列表,并在我的scala程序中使用了这个列表。我从java类读取列表的scala代码如下所示。
private val stringList : Seq[List] = x.getStringName //gets the list from my java program.
stringList包含
["How", "Are", "You"].
我正在设法将这些字符串添加到名为a、b和c的值中,以便以后可以
我已经创建了一个矩阵,其中包含4个关于我想要操作的图的节点的主要信息,我正在尝试将它们保存为一个数组数组。并使用排序为迭代特定信息的关联数组
这是包含我的信息的矩阵
nodes = [[0 for x in range(4)] for y in range(n)]
for i in range(nodeNumber+1):
nodes[i] = info1[i], info2[i] , info[3] , i
如何使用numpy创建相同的矩阵?
我试图从我的“节点”创建一个矩阵,但就像我有一个元组数组,而不是一个矩阵,因为numpy不认为它是一个矩阵
我正在业余时间学习Scala --作为一个学习练习,我将一些OCaml代码翻译成Scala。既然我是斯卡拉的新手,请给我一些建议.
但在问我问题之前-这是原始的OCaml代码:
let visited = Hashtbl.create 200000
let rec walk xx yy =
let addDigits number =
let rec sumInner n soFar =
match n with
| x when x<10 -> soFar+x
| x ->
我试图找到在Scala集合中找到对的最佳方法。例如,
val list = List(1,2,3)
应该生产这些对
(1,2) (1,3) (2,1) (2,3) (3,1) (3,2)
我现在的工具似乎很贵。我如何进一步优化这一点?
val pairs = list.flatMap { currentElement =>
val clonedList: mutable.ListBuffer[Int] = list.to[ListBuffer]
val currentIndex = list.indexOf(currentElement)
val re
我正在读M. Odersky的Scala编程,他说
像“近似”这样的函数称为“尾递归”,称自己为它们的最后一个动作。
所以,我试过这个
object Main extends App {
implicit val mc = new MyClass(8)
val ti = new TestImplct
ti.test
}
class TestImplct {
def test(implicit mc : MyClass): Unit = {
println(mc.i)
mc.i -= 1
if(mc.i < 0){
我有一个看起来像这样的类:
public class SourceObject
{
public string Id { get; set; }
public List<SourceObject> Children { get; set; }
public SourceObject()
{
Children = new List<SourceObject>();
}
}
如您所见,它有一个属性,其中包含同一个类的更多实例的列表。我为这个类处理的数据意味着,在运行时之前,子对象的数量是未知的,生成的对象图的总体“深
我有一个多项目构建,比如项目A和B(根中的build.sbt示例):
lazy val projectA = (project in file("A"))
lazy val projectB = (project in file("B"))
我想使用来自projectA的代码生成一些.java文件,并将它们放在projectB中,作为projectB构建过程的一部分,然后再为projectB运行编译步骤。我在projectA中有一个Scala对象。本质上,我在projectA中有一个编译器,它在运行编译步骤之前生成需要在projectB中的文件。我试过以下几种方
假设函数r返回五个值的元组。
scala> def r = (1,2,3,4,5)
r: (Int, Int, Int, Int, Int)
当我从r分配返回的值时,我得到了大写字母变量的错误。
scala> val (a,b,c,d,E) = r
<console>:13: error: not found: value E
val (a,b,c,d,E) = r
^
如果我不使用大写字母,就不会出现错误。
scala> val (a,b,c,d,e) = r
a: Int = 1
b: Int = 2
c: