我一直在尝试用Scala编写一些代码来读取文件并将其分成行,以便向树结构中添加单词。我对此采取了几种不同的方法,但都遇到了相同的错误:
java.lang.IndexOutOfBoundsException: -1
at scala.collection.immutable.Vector.checkRangeConvert(Vector.scala:140)
at scala.collection.immutable.Vector.apply(Vector.scala:130)
at WordTree.addWord(Main.scala:27)
at bot$$anonfun$main$2.
使用以下函数:
def fMatch(s: String) = {
s match {
case "a" => println("It was a")
case _ => println("It was something else")
}
}
此模式很好地匹配:
scala> fMatch("a")
It was a
scala> fMatch("b")
It was something else
我希望能够做到以下几点:
def mMat
我发现,当使用模式匹配和替代(对于字符串)时,Scala接受以大写开头的变量(在下面的示例中是MyValue1和MyValue2),而不是以小写(myValue1、myValue2)开头的变量。这是一个bug还是Scala的一个特性?我在2.8版中得到了这个。如果这是一个特性,谁能解释其背后的理由吗?这是我使用的代码:
val myValue1 = "hello"
val myValue2 = "world"
val MyValue1 = "hello"
val MyValue2 = "world"
var x:String =
我已经使用Jackson框架编写了一个Scala程序来读取Json文件。每当执行Scala程序时,我都会得到以下错误。有人能建议我如何克服这个错误吗?
错误
Exception in thread "main" com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor found for type [simple type, class Definition]: can not instantiate from JSON object (need to add/enable type
我试着从另一个问题中学习一个例子,然后我发现了一些我无法解释的事情:
scala> import scala.reflect.runtime.{currentMirror => m}
import scala.reflect.runtime.{currentMirror=>m}
scala> m.mkToolBox()
<console>:12: error: value mkToolBox is not a member of reflect.runtime.universe.Mirror
m.mkToolBox()
class Admit {
public Person p;
public Student s;
public void printAdmit() {
System.out.println(p.getFirstName());
}
class Student {
public long rollno;
public String toString() {
return "rollno: " + rollno;
}
public
为什么我可以用小写字母来命名:
val (a, bC) = (1, 2)
(1, 2) match {
case (a, bC) => ???
}
也不能使用大写字母:
/* compile errors: not found: value A, BC */
val (A, BC) = (1, 2)
/* compile errors: not found: value A, BC */
(1, 2) match {
case (A, BC) => ???
}
我用的是scala-2.11.17
下面的代码编译,但抛出一个错误:Exception in thread "main" scala.MatchError:[{"id":6430758,"name":...] (of class play.api.libs.json.JsArray)。如何通过将items列表中的JSON列表和仅5个元素读取给定链接的JSON?
import play.api.libs.json._
def getProjects: List[Map[String, Any]] = {
val iter = getJSON("https://a
我有一个java代码文件,
public class PropertyRequestService {
static String result;
PropertiesList localProperty = new PropertiesList();
List<PropertiesList> Properties;
public List<PropertiesList> getAllPropertiesStuff() {
JSONArray json = null;
try {
HttpClient client = new D
我正试图使用Scala将Kafka流Json数据插入我的Cassandra中,但不幸的是被卡住了。我的准则是:-
val kafkaStream = KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](ssc, kafkaParams, topics)
val records = kafkaStream.map(_._2)
val collection = records.flatMap(_.split(",")).map(s => event(s(0).toString,
Scala常量的命名约定是什么?对StackOverflow建议大写CamelCase (下面的第一行)进行简单搜索,但我想再检查一遍。
val ThisIsAConstant = 1.23
val THIS_IS_ANOTHER_CONSTANT = 1.55
val thisIsAThirdConstant = 1.94
推荐的Scala风格是什么?
我是scala的新手,在反射方面遇到了一些困难。
给定以下类:
class Person (name: String) {
.....
}
和给定的实例:
val p = new Person ("MyName")
如何在反射中取回值"MyName“?
顺便说一句,我尝试过使用getClass.getDeclaredFields()来实现java反射,但是没有成功...
谢谢!
我在为我的JavaScript应用程序绘制准确的UML类图时遇到了一些问题。我已经阅读了几个UML参考资料,但仍然没有找到适合我的情况的答案,因为所有的示例都是基于C++/Java的经典继承和类模型。
我想用构造函数和原型对象的扩展来表示自定义JavaScript对象的创建,这与C++/Java类实例化有很大的不同。
如何用UML类图来表示我的代码的这个简化版本?
var Book = function(title, author) {
this.title = title || 'No title specified';
this.author = autho
我肯定对Scala的“匹配”语义或编译器逻辑有一些基本的误解。这段代码:
val stageStart:Int = 0
val stageShutDown:Int = Int.MaxValue
val stageErrorReport:Int = Int.MinValue
def stageString(stage:Int):String = stage match {
case stageStart => "Start"
case stageShutDown => "End"
case stageErrorRepor
在中,Book.scala文件如下所示。
package models
import play.api.libs.json.Json
object Book {
case class Book(name: String, author: String)
implicit val bookWrites = Json.writes[Book]
implicit val bookReads = Json.reads[Book]
var books = List(Book("TAOCP", "Knuth"), Book("SICP
在Scala中,代数数据类型被编码为sealed一级类型层次结构.示例:
-- Haskell
data Positioning a = Append
| AppendIf (a -> Bool)
| Explicit ([a] -> [a])
// Scala
sealed trait Positioning[A]
case object Append extends Positioning[Nothing]
case class AppendIf[A](condition: A => Boole