我有一个类型的变量,Any
其运行时类型String
我想要转换为Int
:
val a: Any = "123"
Run Code Online (Sandbox Code Playgroud)
如果我尝试转入Int,我会得到一个例外java.lang.ClassCastException
:
val b = a.asInstanceOf[Int]
Run Code Online (Sandbox Code Playgroud)
那我该怎么办?
我无法弄清楚为什么我会有错误" deadLetters
"
class MyActor extends Actor {
private def getIdList = Future { blocking(getIdListSync) }
private def getIdListSync = {
val inputStreamRaw = new URL(url).openConnection.getInputStream
val inputStream = scala.io.Source fromInputStream inputStreamRaw
val json = parse(inputStream getLines() mkString "\n")
val jsonIds = json \ "ids" \\ classOf[JInt]
jsonIds take idLimit map (_.toInt)
}
def receive = {
case Get =>
//doesn't work, the error is "sender" becomes "Actor[akka://Main/deadLetters]"
// getIdList onComplete {
// case Success(idList) =>
// sender ! Result(idList) …
Run Code Online (Sandbox Code Playgroud) 我有一个包含几个子项目的多项目.
根项目project/build.properties
包含
sbt.version=0.13.0
Run Code Online (Sandbox Code Playgroud)
事实证明,0.12.4
由于依赖性问题,其中一个子项目仅适用于该版本.
我build.properties
将该版本放入其目录中,但它没有更改此项目的sbt版本.
我该怎么做呢?有可能吗?
我没有在Play Framework中发现任何部分视图的概念,类似于Ruby on Rails的部分视图.例如,如果有layouts/main.scala.html
布局:
@(title: String)(content: => Html)(implicit flash: Flash)
<!DOCTYPE html>
<html>
<head>
<title>@title</title>
</head>
<body>
<section class="content">@content</section>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
而且还有layouts/_footer.scala.html
"部分",我如何_footer
加入main
?Play中有类似内容吗?
我有一个android-scala项目,里面有子项目.在build.sbt
我设置scalaVersion的所有文件中:
scalaVersion := "2.11.4"
在project/build.properties
我设置这个:
sbt.version=0.12.4
Run Code Online (Sandbox Code Playgroud)
但是,它继续生成这个(Scala 2.9.2)/home/alex/Documents/projects/android/my_project//project/target/scala-2.9.2/sbt-0.12/classes
并且当我通过在根文件夹中输入sbt来运行sbt时它会一直抛出异常:
[error] error while loading CharSequence, class file '/usr/local/java/jdk1.8.0_05/jre/lib/rt.jar(java/lang/CharSequence.class)' is broken
[error] (bad constant pool tag 15 at byte 1501)
[error] one error found
[error] (compile:compile) Compilation failed
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?
Run Code Online (Sandbox Code Playgroud)
是的,我有JDK 8,但我正在使用scala 2.11.4
.
echo $JAVA_HOME
/usr/local/java/jdk1.8.0_05
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个执行并行评估的简单示例:
import Control.Parallel.Strategies
main = do
runEval $ do
a <- rpar (\x -> x + 5)
b <- rseq (\x -> x + 15)
return (a, b)
Run Code Online (Sandbox Code Playgroud)
它说
Couldn't match expected type `IO t0'
with actual type `(Integer -> Integer, Integer -> Integer)'
Run Code Online (Sandbox Code Playgroud)
我知道,它与Haskell中的并行性无关,但是,我如何在Haskell中构建这样一个简单的例子?
我想知道,为什么班级不能访问伴侣对象的字段?
class MyClass {
println(val1) // not found, why?
}
object MyClass {
val val1 = "str"
}
Run Code Online (Sandbox Code Playgroud)
应该,甚至应该可以访问私人领域object MyClass
.
有关于如何在Haskell中下载大文件的任何建议吗?我认为Http.Conduit是这个库是一个很好的库.但是,它是如何解决这个问题的?它的文档中有一个例子,但它不适合下载大文件,它只是下载一个文件:
import Data.Conduit.Binary (sinkFile)
import Network.HTTP.Conduit
import qualified Data.Conduit as C
main :: IO ()
main = do
request <- parseUrl "http://google.com/"
withManager $ \manager -> do
response <- http request manager
responseBody response C.$$+- sinkFile "google.html"
Run Code Online (Sandbox Code Playgroud)
我想要的是能够下载大文件而不是用完RAM,例如在性能方面做得有效等等.最好能够"继续"下载它们,意思是"现在某个部分,后来的另一个部分" .
我还发现了hackage上的download-curl软件包,但我并不认为这是一个很好的选择,甚至可以像我需要的那样通过chunk下载文件块.
如何在结构中创建自定义 getter或setter:
struct MyStruct {
field1: int
}
impl MyStruct {
//getter
fn field1(self) -> int {
// some calculations....
// return the value...
}
//or
//setter
fn field1(self, value) {
}
}
Run Code Online (Sandbox Code Playgroud)
什么是真正的Rust方式呢?
我有这个十进制数 Elixir:
c1 = Decimal.div(a1, b1)
# => #Decimal<0.006453859622556080696687234694>
Run Code Online (Sandbox Code Playgroud)
如何将其四舍五入为小数点后位数较少的较短数字?