在Firefox中,我可以通过使用获得异常的堆栈跟踪exception.stack.
有没有办法在其他浏览器中获得它?
编辑:我实际上想要自动保存堆栈跟踪(如果可能),而不是当时调试它(即我知道如何在调试器中获取堆栈跟踪).
在Linux上创建网站截图的好命令行工具是什么?我需要在没有人工交互的情况下自动生成网站的屏幕截图.我找到的唯一工具是khtml2png,但我想知道是否有其他不基于khtml(即有良好的JavaScript支持,......).
使用今天的Rust每晚,以下代码不再编译:
#[derive(Show)]
enum S {
A,
B
}
fn main() {
println!("{}", S::A);
}
Run Code Online (Sandbox Code Playgroud)
相反,它给我以下错误消息:
error: the trait `core::fmt::String` is not implemented for the type `S`
Run Code Online (Sandbox Code Playgroud)
有没有办法得到旧的行为?当然,不需要为每种类型手动实现这一点.
我目前正在开发一个大型的Ruby on Rails项目.它足够大,足够大,以至于不清楚是否所有视图都在使用中.
是否有任何脚本/插件可以生成未使用的视图文件列表?
在我目前的Ruby on Rails视图中,我们有很多视图和部分视图.事实上很多人都不清楚哪个视图使用哪个部分(它本身也可能使用其他部分).
问题是,是否有一个工具可以生成所有视图和部分的依赖图(理想情况下生成图形,但这很容易)或者如何解决这个问题.
编者注:这个问题是在Rust 1.0之前和某些功能实现之前提出的.代码as-is今天有效.
我在Rust写了一个棋盘游戏AI.游戏有多个规则集,我希望将规则逻辑与棋盘布局分开(它们目前是混合的).在像Ruby这样的语言中,我有单独的规则集实现相同的接口.在Rust中,我考虑使用特征并Board使用我想要使用的规则集参数化(例如Board<Rules1>::new()).
Board不允许在结构(如)中保存实现此特征的对象.我可以把它Rules变成一个enum,但它看起来有点乱,因为我无法为枚举成员定义单独的实现.使用模式匹配可以工作,但是沿着功能轴而不是沿结构轴分割功能.这只是我必须忍受的东西还是某种方式?
以下代码是我想要使用的代码:
pub struct Rules1;
pub struct Rules2;
trait Rules {
fn move_allowed() -> bool;
}
impl Rules for Rules1 {
fn move_allowed() -> bool {
true
}
}
impl Rules for Rules2 {
fn move_allowed() -> bool {
false
}
}
struct Board<R: Rules> {
rules: R
}
fn main() {}
Run Code Online (Sandbox Code Playgroud)
它会产生以下错误:
test.rs:20:1: 22:2 error: trait bounds are not allowed in structure definitions
test.rs:20 struct Board<R: Rules> …Run Code Online (Sandbox Code Playgroud) 有人在Snow Leopard上尝试过Digitalmars D编译器(版本2)吗?我想升级,但我宁愿有一个正常工作的D编译器.
我试图通过在for循环中追加它来构建一个字符串.由于某种原因,字符串被移动到for循环中,我无法让它工作.我显然错过了一些东西.这是一个展示此行为的简短代码段:
fn main() {
let s = format!("some string");
for x in vec!(1,2).move_iter() {
s.append("some other string");
}
}
Run Code Online (Sandbox Code Playgroud)
我从编译器(rustc 0.11.0-pre (c0a6f72 2014-06-12 14:17:13 +0000))得到以下错误:
test.rs:4:9: 4:10 error: use of moved value: `s`
test.rs:4 s.append("some other string");
^
test.rs:4:9: 4:10 note: `s` moved here because it has type `collections::string::String`, which is non-copyable (perhaps you meant to use clone()?)
test.rs:4 s.append("some other string");
^
error: aborting due to previous error
Run Code Online (Sandbox Code Playgroud) 我正在尝试动态建立一棵树,并在下降,叶子和备份期间修改树的某些部分。我相信我对在Rust中如何做这样的事情有根本的误解。这是我的代码:
struct Node {
children: Vec<Node>,
data: usize,
}
impl Node {
pub fn new() -> Node {
Node {
children: vec![],
data: 0,
}
}
pub fn expand(&mut self) {
self.children = vec![Node::new(), Node::new()];
}
pub fn is_leaf(&self) -> bool {
self.children.len() == 0
}
}
pub fn main() {
let mut root = Node::new();
for _ in 0..10 {
let mut node = &mut root;
let mut path = vec![];
// Descend and potential modify the node in …Run Code Online (Sandbox Code Playgroud) 鉴于以下计划:
use std::fmt;
struct A;
impl fmt::Debug for A {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
format!("\nA\n").fmt(f)
}
}
fn main() {
println!("{:?}", A);
}
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
"\nA\n"
Run Code Online (Sandbox Code Playgroud)
是否有可能将这些换行符"翻译"成真正的换行符?不幸的是我不能使用这个Display特性,因为这是用于在显示错误消息时使用特征的hamcrest-rustDebug.
rust ×6
ruby ×2
d ×1
dmd ×1
enums ×1
exception ×1
javascript ×1
linux ×1
mutable ×1
polymorphism ×1
screenshot ×1
tree ×1