小编lol*_*ley的帖子

Scala - 伴随对象&apply:不可理解的错误

我无法使用伴随对象创建表示XML解析文档的类.

这是该类的代码:

package models

import javax.xml.bind.Element
import scala.xml.Elem
import javax.xml.validation.SchemaFactory
import javax.xml.transform.stream.StreamSource


trait MyXML {

case class ElémentXML(code_xml: scala.xml.Elem) {

def validate: Boolean = {

try ({
  val schemaLang = "http://www.w3.org/2001/XMLSchema"
  val factory = SchemaFactory.newInstance(schemaLang)
  val schema = factory.newSchema(new StreamSource("Sites_types_libelles.xsd"))
  val validator = schema.newValidator()
  validator.validate(new StreamSource(code_xml.toString))
  true
}) catch {
  case t:Throwable => false
}
}



}

object ElémentXML {

def apply(fichier: String) {

  try{
  val xml_chargé = xml.XML.loadFile(fichier)
  Some(new ElémentXML(xml_chargé))
  }catch{
    case e:Throwable => None
  }
}
}

} …
Run Code Online (Sandbox Code Playgroud)

xml scala companion-object

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

如何在main中混合纯数据和不纯数据?

假设我写了一个纯函数f,其签名是

f :: Int -> Int
Run Code Online (Sandbox Code Playgroud)

如何编写main函数以显示1000个第一个值,如下所示:

(1,f(1)), (2,f(2)), ..., (1000,f(1000))?
Run Code Online (Sandbox Code Playgroud)

haskell

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

scala:case class&copy()返回Any

你能帮我解决一个基本问题吗?我有一个"Rdv"(会议)列表,其中Rdv是一个案例类,有3个字段存储电话号码为字符串:telBureau,telPortable和TelPrivé.

我通过本机SQL查询从光滑中获取此列表; 此查询使用String或"null"(空对象,而不是"null"字符串)填充3个电话号码字段.我想删除这些空字段,所以我写了这个:

var l2:List[Rdv] = liste.list()
l2=l2.map( (w:Rdv) =>{
    if ( w.telPrivé==null ) w.copy( telPrivé = "" )
})
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

found:List[Any], required:List[Rdv]
Run Code Online (Sandbox Code Playgroud)

所以在地图后我添加了".asInstanceOf [List [Rdv]]",但后来我收到了这个错误:

java.lang.ClassCastException: scala.runtime.BoxedUnit cannot be cast to metier.Objets$Rdv
Run Code Online (Sandbox Code Playgroud)

这似乎是一个基本问题,但我不能这样做.

奥利维尔.

scala copy case-class slick

0
推荐指数
1
解决办法
333
查看次数

haskell"exp"函数返回错误的结果

以下代码:

Module Main where

main :: IO ()
main = do putStrLn "hello"
          putStrLn $ "2 exp 6 = " ++ show (2 `exp1` 6)

exp1 :: Integer -> Integer -> Integer
exp1 x n | n == 0 = 1
         | n == 1 = x
         | even n =     exp1 (x*x) m
         | odd  n = x * exp1 (x*x) (m-1)
         where m = n `div` 2
Run Code Online (Sandbox Code Playgroud)

产生输出42 `exp1` 6,这显然是错误的.

谢谢

haskell

-1
推荐指数
1
解决办法
174
查看次数

标签 统计

haskell ×2

scala ×2

case-class ×1

companion-object ×1

copy ×1

slick ×1

xml ×1