小编Chr*_*oph的帖子

git am和git apply有什么区别?

双方git amgit apply可以用来应用补丁.我没有看到差异.我现在看到了一个区别:git am自动提交而git apply只触及文件但不创建提交.这是唯一的区别吗?

git patch

124
推荐指数
3
解决办法
6万
查看次数

callstack究竟是如何工作的?

我试图更深入地了解编程语言的低级操作是如何工作的,尤其是它们如何与OS/CPU交互.我可能已经在Stack Overflow上的每个堆栈/堆相关线程中阅读了每个答案,并且它们都很棒.但还有一件事我还没有完全理解.

在伪代码中考虑这个函数,这往往是有效的Rust代码;-)

fn foo() {
    let a = 1;
    let b = 2;
    let c = 3;
    let d = 4;

    // line X

    doSomething(a, b);
    doAnotherThing(c, d);
}
Run Code Online (Sandbox Code Playgroud)

这就是我假设堆栈在X行上的样子:

Stack

a +-------------+
  | 1           | 
b +-------------+     
  | 2           |  
c +-------------+
  | 3           | 
d +-------------+     
  | 4           | 
  +-------------+ 
Run Code Online (Sandbox Code Playgroud)

现在,我读到的关于堆栈如何工作的一切都是它严格遵守LIFO规则(后进先出).就像.NET,Java或任何其他编程语言中的堆栈数据类型一样.

但如果是这样,那么在X行之后会发生什么?显然,接下来我们需要的是使用ab,但这意味着操作系统/ CPU(?)必须弹出dc首先回到ab.但是它会在脚下射击,因为它需要c并且d在下一行.

所以,我想知道幕后究竟发生了什么?

另一个相关问题.考虑我们传递对其他函数的引用,如下所示:

fn foo() {
    let …
Run Code Online (Sandbox Code Playgroud)

cpu assembly callstack calling-convention low-level

99
推荐指数
5
解决办法
2万
查看次数

是否可以使类型只能移动而不能复制?

编者注:在Rust 1.0之前问过这个问题,问题中的一些断言在Rust 1.0中不一定正确.一些答案已更新,以解决这两个版本.

我有这个结构

struct Triplet {
    one: i32,
    two: i32,
    three: i32,
}
Run Code Online (Sandbox Code Playgroud)

如果我将它传递给函数,则会隐式复制它.现在,有时我读到某些值不可复制,因此必须移动.

是否有可能使这个结构Triplet不可复制?例如,是否有可能实现一个Triplet不可复制的特性,因此可以"移动"?

我读到某个地方必须实现Clone特征来复制那些不能隐式复制的东西,但是我从来没有读过相反的东西,那就是有一些隐式可复制的东西,并使它不可复制,以便它移动.

这甚至有意义吗?

rust

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

如何使用jquery-mobile和knockoutjs构建webapp

我想构建一个移动应用程序,除了html/css和JavaScript之外别无其他.虽然我对如何使用JavaScript构建Web应用程序有很好的了解,但我想我可能会看一下像jquery-mobile这样的框架.

起初,我认为jquery-mobile仅仅是针对移动浏览器的小部件框架.与jquery-ui非常相似,但对于移动世界而言.但我注意到jquery-mobile不止于此.它带有一堆架构,让你用声明性的html语法创建应用程序.因此,对于最容易思考的应用程序,您不需要自己编写一行JavaScript(这很酷,因为我们都喜欢少工作,不是吗?)

为了支持使用声明性html语法创建应用程序的方法,我认为将jquery-mobile与knockoutjs结合起来是一个很好的选择.Knockoutjs是一个客户端MVVM框架,旨在将WPVM/Silverlight中的MVVM超级功能引入JavaScript世界.

对我来说MVVM是一个新世界.虽然我已经阅读了很多关于它的内容,但我以前从未真正使用它.

所以这篇文章是关于如何使用jquery-mobile和knockoutjs一起构建应用程序.我的想法是写下我看了几个小时后想出来的方法,并有一些jquery-mobile/knockout yoda来评论它,告诉我为什么它糟透了,为什么我不应该在第一次编程地方;-)

HTML

jquery-mobile在提供页面的基本结构模型方面做得很好.虽然我很清楚我之后可以通过ajax加载我的页面,但我决定将它们全部保存在一个index.html文件中.在这个基本场景中,我们谈论的是两个页面,因此不应该太难以掌握一切.

<!DOCTYPE html> 
<html> 
  <head> 
  <title>Page Title</title> 
  <link rel="stylesheet" href="libs/jquery-mobile/jquery.mobile-1.0a4.1.css" />
  <link rel="stylesheet" href="app/base/css/base.css" />
  <script src="libs/jquery/jquery-1.5.0.min.js"></script>
  <script src="libs/knockout/knockout-1.2.0.js"></script>
  <script src="libs/knockout/knockout-bindings-jqm.js" type="text/javascript"></script>
  <script src="libs/rx/rx.js" type="text/javascript"></script>
  <script src="app/App.js"></script>
  <script src="app/App.ViewModels.HomeScreenViewModel.js"></script>
  <script src="app/App.MockedStatisticsService.js"></script>
  <script src="libs/jquery-mobile/jquery.mobile-1.0a4.1.js"></script>  
</head> 
<body> 

<!-- Start of first page -->
<div data-role="page" id="home">

    <div data-role="header">
        <h1>Demo App</h1>
    </div><!-- /header -->

    <div data-role="content">   

    <div class="ui-grid-a">
        <div class="ui-block-a">
            <div class="ui-bar" style="height:120px">
                <h1>Tours today (please wait 10 seconds to see the effect)</h1>
                <p><span data-bind="text: toursTotal"></span> …
Run Code Online (Sandbox Code Playgroud)

mvvm jquery-mobile knockout.js

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

如何将String转换为&'static str

如何将a String转换为&str?更具体地说,我想将它转换为str带有staticlifetime(&'static str)的a.

rust

69
推荐指数
4
解决办法
5万
查看次数

为什么递归结构类型在Rust中是非法的?

我正在尝试随机的事情来加深我对Rust的理解.我刚用这段代码遇到以下错误:

struct Person {
    mother: Option<Person>,
    father: Option<Person>,
    partner: Option<Person>,
}

pub fn main() {
    let susan = Person {
        mother: None,
        father: None,
        partner: None,
    };

    let john = Person {
        mother: None,
        father: None,
        partner: Some(susan),
    };
}
Run Code Online (Sandbox Code Playgroud)

错误是:

error[E0072]: recursive type `Person` has infinite size
 --> src/main.rs:1:1
  |
1 | struct Person {
  | ^^^^^^^^^^^^^ recursive type has infinite size
2 |     mother: Option<Person>,
  |     ---------------------- recursive without indirection
3 |     father: Option<Person>,
  | …
Run Code Online (Sandbox Code Playgroud)

rust

51
推荐指数
3
解决办法
9699
查看次数

如何在Rust中的格式字符串中转义花括号

我想写这个

write!(f, "{ hash:{}, subject: {} }", self.hash, self.subject)
Run Code Online (Sandbox Code Playgroud)

但由于花括号对于格式化具有特殊意义,因此很明显我无法在没有转义的情况下放置外部花括号.所以我试图逃避它们.

write!(f, "\{ hash:{}, subject: {} \}", self.hash, self.subject)
Run Code Online (Sandbox Code Playgroud)

Rust也不喜欢这样.然后我读到了这个:

文字字符{,}或#可以包含在字符串中,前面加上\字符.由于\已经是Rust字符串中的转义字符,因此使用此转义的字符串文字将类似于"\ {".

所以我试过了

write!(f, "\\{ hash:{}, subject: {} \\}", self.hash, self.subject)
Run Code Online (Sandbox Code Playgroud)

但那也行不通.:-(

string-formatting rust

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

如何在Google Chrome中调试标签崩溃

我们有一个单页面应用程序随机崩溃整个浏览器选项卡.我观察了一个多小时的记忆,但它没有增加,一切看起来都很好.经过一段时间后突然间,突然崩溃了.

我找了一个崩溃转储

C:\Users\cburgdorf\AppData\Local\Google\CrashReports
Run Code Online (Sandbox Code Playgroud)

但Chrome-last.dmp完全过时了.有什么地方可以查找有关崩溃的其他信息吗?更不用说它很难重现野兽.

我想知道我是否可以启动带有windbg的Chrome并等待(2小时左右的叹息)因为标签崩溃.那会有用吗?

UPDATE

你们所有人都给出了很好的答案,并为寻找漏洞提供了有价值的建议 最后,我能够使用以下步骤重现错误并获得明确的崩溃转储:

1.) windbg.exe -o chrome.exe
2.) reproduce crash
3.) .dump /ma C:\Path\To\A\CrashDump\File.dmp (as Paul pointed out)
4.) end session and load the crash dum with windbg
5.) use !analyze -v to extract valuable information
Run Code Online (Sandbox Code Playgroud)

crash debugging google-chrome

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

是什么让<button>元素上的文本垂直居中?

<button>我觉得这个元素周围有一些神奇的东西.

考虑这个标记:

<button class="button">Some Text</button>
<div class="button">Some Text</div>
Run Code Online (Sandbox Code Playgroud)

这个CSS:

.button{
    background: darkgrey;
    height: 40px;
    border: 2px solid grey;
    width: 100%;
    box-sizing: border-box;
    font-size: 14px;
    font-family: helvetica;
    text-align: center;
    margin-bottom: 20px;

    /*I'm aware I could use this to center it*/
    /*line-height: 40px;*/
}
Run Code Online (Sandbox Code Playgroud)

是什么让按钮元素中的文本垂直居中?WebKit的似乎是预先定义-webkit-box-align与值center<button>元素.如果我将其设置为initial文本不再与中心对齐.但这似乎并不是完全的魔力,因为另一方面,我没有运气使用-webkit-box-align属性将文本集中在div上.

这是一个小提琴:http://jsfiddle.net/cburgdorf/G5Dgz/

html css webkit centering

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

如何在没有模式匹配的情况下比较枚举

我想申请filter一个迭代器,我想出了这个并且它可以工作,但它超级详细:

.filter(|ref my_struct| match my_struct.my_enum { Unknown => false, _ => true })
Run Code Online (Sandbox Code Playgroud)

我宁愿写这样的东西:

.filter(|ref my_struct| my_struct.my_enum != Unknown)
Run Code Online (Sandbox Code Playgroud)

这给了我一个编译错误

binary operation `!=` cannot be applied to type `MyEnum`
Run Code Online (Sandbox Code Playgroud)

有冗长模式匹配的替代方案吗?我寻找一个宏但找不到合适的宏.

enums pattern-matching rust

30
推荐指数
4
解决办法
2万
查看次数