小编Cha*_*enu的帖子

Rust会自动取消引用原始类型引用吗?

我是Rust的新手,并试图了解引用的工作原理.在下面的代码中,当我想要进行计算时a1,i32我不必取消引用它.但随着b1这是一个Box,我必须取消对它的引用.

实际上,这两个let a2 = a1 * 2;let a3 = *a1 * 2;的行为类似.看起来像原语中的解引用是可选的,或者编译器隐式地为我们做这件事.

fn main(){
    let a = 5;
    let b = Box::new(10);
    let a1 = &a;
    let b1 = &b;

    println!("{} {}", a1, b1);

    let a2 = a1 * 2;
    let b2 = (**b1) * 10;
    let a3 = *a1 * 2;

    println!("{} {} {}", a2, a3, b2);

}
Run Code Online (Sandbox Code Playgroud)

有人可以解释这个功能吗?

rust

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

时计箱的Json序列化功能

我正在尝试使用从Rust-chrono crate到我自己的特性的DateTime.

#[derive(Debug, RustcEncodable, RustcDecodable)]
pub struct Accomplishment {
  name: String,
  accomplishment_type: String,
  date: DateTime<UTC>
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它时,它会抱怨

src/lib.rs:11:33: 11:47 error: the trait `rustc_serialize::serialize::Decodable` is not implemented for the type `chrono::datetime::DateTime<chrono::offset::utc::UTC>` [E0277]
src/lib.rs:11 #[derive(Debug, RustcEncodable, RustcDecodable)]
Run Code Online (Sandbox Code Playgroud)

当我检查chrono 的github repo时,它实现了rustc_serialize支持.但它是一个功能.在提交日志中它有

cargo test -v --features rustc-serialize
Run Code Online (Sandbox Code Playgroud)

我不确定如何为我的项目提供此功能.有人可以帮我解决如何使用rustc-serialize的chrono吗?

对此有一个类似的问题.但我想要的是在我的项目中使用chrono中提供的序列化支持而不实现包装器特征.

serialization rust rust-cargo

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

SBT Web插件:获取ScopedKey时出错(范围(此,选择(ConfigKey(容器)),此,此),全类路径)

我正在尝试用sbt设置scala web项目.我有以下设置.

  • 斯卡拉2.9.0-1
  • sbt 0.11.0
  • xsbt-web-plugin 0.2.1

项目/ plugins.sbt

libraryDependencies <+= sbtVersion(v => "com.github.siasia" %% "xsbt-web-plugin" % (v+"-0.2.1"))
Run Code Online (Sandbox Code Playgroud)

项目/ TaskTrackerBuild.scala

import sbt._
import com.github.siasia._
import WebPlugin._
import PluginKeys._
import Keys._
/**
 * Main sbt build file for the task-tracker project.
    *
 */
object TicketingCoreProject extends Build {
  val ticketingVersion = "1.0.0-SNAPSHOT"
  val Organization = "org.sansoft"
  val ScalaVersion = "2.9.0-1"

  val jodaTime = "joda-time" % "joda-time" % "1.6"
  val scalaTime = "org.scala-tools.time" % "time_2.8.0" % "0.2"
  val casbah = "com.mongodb.casbah" % …
Run Code Online (Sandbox Code Playgroud)

scala sbt xsbt-web-plugin

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

使用java中的自我类型依赖项初始化scala类

我正在开发一个既有scala又有java代码的项目.我想在java代码中使用scala编写的类.我遇到的问题是scala类有一些自我类型依赖项.从java创建该类的新实例时,我不知道如何给它们.

trait Deps1 {
 def dep1 = println("dep1")
}

trait Deps2 {
 def dep2 = println("dep2")
}

class TestClass {
 this: Deps1 with Deps2 =>

 def test = {
   dep1
   dep2
 }
}
Run Code Online (Sandbox Code Playgroud)

在scala中如果我要创建TestClass我可以使用的实例,new TestClass with Deps1 with Deps2但我不知道如何在java代码中这样做.

我正在使用scala 2.9.2.谁可以帮我这个事?

java scala

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

标签 统计

rust ×2

scala ×2

java ×1

rust-cargo ×1

sbt ×1

serialization ×1

xsbt-web-plugin ×1