假设我有如下安装说明:
如何在Dockerfile中表达这一点?
我正在逐步调试Visual Studio 2010中的一个应用程序,令人惊讶的是,它以非线性的方式跳回到一部分代码中.我在单元测试中运行代码,使用debug(使用resharper)并且Visual Studio停止,它在等待一段时间后没有说stackoverflow或任何东西.
我认为这是一个错误.我也发生在另一个时间.为什么它会以这种任意方式跳转代码?
你知道如何防止这种情况吗?是否有一些特殊的编码方式会使这个bug容易发生?
编辑:跳转到的代码的一部分:
foreach (var elemento in expresion.ElementosUsados)
{
valoresElementos.Add(new ValorYNombre(elemento.Nombre, elemento.GetValor(valoresBase)));
}
Run Code Online (Sandbox Code Playgroud)
那时"elemento"的值将等于"this"(对同一个对象的引用)
因此,例如,鉴于我有以下课程
class Foo{
String id;
Foo(this.id);
}
Run Code Online (Sandbox Code Playgroud)
我想要某种 Foos 集合,然后能够通过其 id 找到任何 Foo。我想比较这两种实现方式:
带地图:
var foosMap = <String, Foo>{"foo1": new Foo("foo1"), "foo2": new Foo("foo2")};
var foo2 = foosMap["foo2"];
Run Code Online (Sandbox Code Playgroud)
使用列表:
var foosList = <Foo>[new Foo("foo1"), new Foo("foo2")];
var foo2 = foosList.singleWhere((i) => i.id == "foo2");
Run Code Online (Sandbox Code Playgroud)
第一种方式(使用地图)在性能方面是否更方便?还有其他需要考虑的因素吗?
所以我创建了一个空的 Meteor 应用程序。其中一个文件 server/main.js 如下所示:
import { Meteor } from 'meteor/meteor';
Meteor.startup(() => {
// code to run on server at startup
console.log('hello from the server');
});
Run Code Online (Sandbox Code Playgroud)
我试过注释掉上面的导入语句,代码仍然运行。那么,导入流星全局变量时导入语句是否只是为了更容易查看变量的来源?如果我包含该 import 语句,它在行为上有什么不同吗?
我写的代码可能有点长,但是,我想知道是否有错误,所以我可以将它提交给dartbug.com.如果没有错误,我想知道我做错了什么.
代码的想法是将点的位置与网格同步(分别为Square类和Grid类).
Square.onPosChange是一个发送前一个位置的Stream.
当一个正方形被添加到Grid(Grid.add)时,就会对onPosChange进行订阅,它所做的就是改变Grid中正方形的位置; 首先它将它从前一个位置移除(只是指定null),然后将其分配给当前位置.
当我希望前一个位置为空时,我的测试失败了.现在下面是代码,并注意我认为可能是问题的注释行.
编辑:以防万一,这不是愚人节问题:P
import 'dart:async';
import 'package:unittest/unittest.dart';
void main() {
test('grid',(){
Square s = new Square(3, 5);
Grid g = new Grid(10,10);
g.add(s);
expect(g._cols[3].squares[5], s);//pass
s.x = 6;
expect(g._cols[6].squares[5], s);//pass
expect(g._cols[3].squares[5], isNull);//fails
});
}
class Grid{
List<GridCol> _cols;
int w, h;
Grid(this.w, this.h){
_cols = new List<GridCol>.filled(w, new GridCol(h));
}
add(Square square){
if(!isOut(square)){
//add square to grid
_cols[square.x].squares[square.y] = square;
//listen to onPosChanged event stream
square.onPosChanged.listen((Point previousPos){
//remove from previous position
_cols[previousPos.x].squares[previousPos.y] = null;
//if is …Run Code Online (Sandbox Code Playgroud)