小编Dan*_*ath的帖子

Rust的`String`和`str`之间有什么区别?

为什么Rust有StringstrString和之间有什么区别str?什么时候使用String而不是str反之亦然?其中一个被弃用了吗?

string rust

341
推荐指数
13
解决办法
4万
查看次数

如何编译Rust代码以在Raspberry Pi 2上运行?

我最近收购了一个Raspberry PI 2,我想在它上面运行Rust程序.

是否有指南/说明如何在Raspberry PI 2上交叉编译Rust程序?我听说过在RPi或Arduino上运行Rust,虽然最近没有.

我想要一个Hello World在Raspberry Pi 2上运行的等效Rust程序.它不一定是文字的Hello World程序,只是具有类似低复杂度的东西.

rust raspberry-pi2

27
推荐指数
3
解决办法
6440
查看次数

在Rust的程序宏中使用$ crate?

我知道$crate变量是什么,但据我所知,它不能在程序宏中使用.还有另一种方法可以达到类似的效果吗?

我有一个例子,大致要求我用引号和每晚Rust 写这样的东西

quote!(
     struct Foo {
        bar: [SomeTrait;#len]
     }
)
Run Code Online (Sandbox Code Playgroud)

我需要确保SomeTrait在范围内(#len引用一个超出代码段范围的整数).

我每晚使用程序宏2.0使用quote和syn,因为proc-macro-hack这对我不起作用.这是我试图概括的例子.

macros rust

18
推荐指数
2
解决办法
805
查看次数

Java 中的 Mono 类:是什么,何时使用?

我有以下代码:

import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.server.ServerRequest;
import org.springframework.web.reactive.function.server.ServerResponse;
import reactor.core.publisher.Mono;

@Component
public class GreetingHandler 
    public Mono<ServerResponse> hello(ServerRequest request) {
        return ServerResponse.ok().contentType(MediaType.TEXT_PLAIN)
        .body(BodyInserters.fromValue("Hello Spring!"));
    }
}
Run Code Online (Sandbox Code Playgroud)

我理解这段代码,除了 Mono 类做什么以及它的功能是什么。我进行了大量搜索,但并没有直截了当:Mono 类是什么以及何时使用它

java spring spring-boot project-reactor spring-mono

14
推荐指数
1
解决办法
2万
查看次数

meteor如何更新浏览器?

观看了Meteor Framework 截屏视频.我注意到更改数据库无缝地更改了浏览器中的数据.通常是AJAX,只需每隔几秒重新加载一部分页面,但在这里我没有注意到浏览器重新加载.他们是如何在流星中实现这一目标的?是Node.js依赖吗?

更新:Toby Catlin提出了另一个有趣的问题.Meteor如何处理不同的浏览器?

meteor

12
推荐指数
2
解决办法
4709
查看次数

如何将char转换为String?

有没有转换一个简洁的方式charString鲁斯特除外:

let mut s = String::new();
s.push('c');
Run Code Online (Sandbox Code Playgroud)

string char rust

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

Haskell如何实际定义+函数?

在阅读真实世界的Haskell时,我想出了这个说明:

ghci> :info (+)
  class (Eq a, Show a) => Num a where
  (+) :: a -> a -> a
  ...
  -- Defined in GHC.Num
  infixl 6 +
Run Code Online (Sandbox Code Playgroud)

但是Haskell如何定义+为非本机函数?在某种程度上,你必须说2 + 3它将成为汇编程序,即机器代码.

haskell

10
推荐指数
2
解决办法
491
查看次数

构建锈病中的异源类型列表

我有以下定义HList:

pub trait Data: Any + Debug {}
impl<T: Any + Debug> Data for T {}

/// The empty `HList`.
pub struct Nil;

/// An `HList` with `H` at position 0, and `T` as the rest of the list.
pub struct Cons<H, T> {
    head: PhantomData<H>,
    tail: PhantomData<T>,
}

/// A marker trait that `Nil` and `Cons<H, T>` satisfies.
pub trait HList {}
impl HList for Nil {}
impl<H, T: HList> HList for Cons<H, T> {}
Run Code Online (Sandbox Code Playgroud)

如何通过将它们附加到最后来构造类型?

将它们作为第一个元素插入是微不足道的: …

types rust

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

将Rust宏类型转换为表达式

我想假设一个给定的类型Default用一个方法(例如default())实现一些特征(例如).我想调用该方法并将其值存储到局部变量中.以下是它的一般概念:

macro_rules! get_default {
    (  $x:ty = $alias:ident ) => {
        let $alias = $x::default();
    };
}

fn main() {
    // get_default!(i32 = z); 
    // println!("get_default! {:?} ", z);
    println!("i32 default {:?} ", i32::default());
}
Run Code Online (Sandbox Code Playgroud)

游乐场链接.

当我尝试时,我收到一个错误:

error: expected expression, found `i32`
 --> <anon>:3:22
  |>
3 |>         let $alias = $x::default();
  |>                      ^^
Run Code Online (Sandbox Code Playgroud)

我理解这是因为它需要一个表达式,但我想将输入限制为仅仅类型.有没有办法把$xtyexpr,还是有办法来调用一个类型的方法(即使它可能丢失).

macros rust

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

在stable上运行编译器插件

我正在尝试制作的东西需要插件编译器,因为我需要在编译时报告错误,但是我希望它能在Rust稳定运行而不是每晚都运行.

有没有办法在稳定的Rust上运行编译器插件?

rust rust-compiler-plugin

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