小编Dan*_*son的帖子

如果没有"延伸",dart mixin'with'不能使用?

我正在使用Webstorm 6.0.2并在尝试使用mixin语法时出错:

class A{}

class B with A{} //error can't use with syntax without an extends?
Run Code Online (Sandbox Code Playgroud)

为什么我不能with没用extends?当然每个阶级都隐含着extends Object.

syntax mixins dart

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

飞镖,单位测试私人方法

我有一个非常大的库,但只暴露了一个非常小的API,使其易于使用和学习新用户.我想以这种方式保留我的图书馆,但我也想确保我有尽可能多的单元测试覆盖率,我希望能够直接对我的所有课程进行单元测试,但据我所知,我可以只有单元测试库的公共API.

当然,我可以编写单元测试来完全测试公共方法,这些公共方法将有效地间接测试所有底层私有类,但如果测试失败,则可能意味着需要在私有代码中进行大量挖掘以找出问题所在错误的,而不是对每个私人班级进行单元测试,所以当出现问题时,它会立即显现出错的地方和位置.

是否有设计模式来帮助解决这种情况或为私人飞镖类和方法编写单元测试的方法?

unit-testing dart

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

如何将io.ReadCloser流式传输到golang中的http.ResponseWriter?

我有一个客户端发出下载文件的请求,Web服务器将此请求转发给实际持有该文件的资源服务器.来自资源服务器的*http.Response让Body io.ReaderCloser从资源服务器流式传输文件内容.但是我正处于这样的地步,我想开始将它写入来自客户端的原始http.ResponseWriter.查看http.ResponseWriter接口它只包含一个写入一个字节的Write方法,这让我觉得将文件内容返回给客户端的唯一方法是将Body io.ReaderCloser读入缓冲区然后把它放到http.ResponseWriter的Write方法中.我不想这样做,因为这非常低效,通过我的网络服务器传输它会好得多.这可能吗?

这里有一些代码来说明:

getFile() *http.Response {
    //make a request to resource server and return the response object
}

// handle request from client
http.HandleFunc("/getFile", func(w http.ResponseWriter, r *http.Request){
    res := getFile()
    //how can I stream res.Body into w without buffering ?
})
Run Code Online (Sandbox Code Playgroud)

streaming http stream go

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

通过材料上的透明PNG显示背景颜色?

我正在使用一个案例构建器THREE.js,基础知识是我希望能够更改height/width/length盒子,旋转它,还可以更改盒子的背景颜色.

这是迄今为止:http: //design365hosting.co.uk/casebuilder3D/

尺寸更改的工作方式,以及框的拖动,现在我正在使用背景颜色更改.

我希望它的工作方式是使用透明的PNG作为框的面,并设置背景颜色,以便通过透明的PNG显示此背景颜色.

这就是我目前正在做的事情:

var texture = THREE.ImageUtils.loadTexture("images/crate.png");
materials.push(new THREE.MeshBasicMaterial({color:0xFF0000, map: texture}));
Run Code Online (Sandbox Code Playgroud)

你可以看到我将材质设置为背景颜色为红色并覆盖透明PNG,问题是,three.js似乎忽略了背景颜色,只显示透明PNG,意味着没有透过颜色显示.

预期结果应该是带有重叠PNG的红色框.

希望有道理,任何人都可以帮忙吗?

png overlay transparent material three.js

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

这个wireshark信息是指什么

我是Wirehark和网络的新手,但我正在监视我的应用程序的流量,我可以对其进行过滤,这样我就可以看到它何时主动传输应该与服务器相关的数据,但wireshark显示了这一点:

protocol = TCP
length = 54
info = 56705 > ms-wbt-server [ACK] Seq=1 Ack=61 Win=252 Len=0
Run Code Online (Sandbox Code Playgroud)

从我的应用程序每秒被激发到我的应用服务器.为什么我的应用程序每秒都会发送这些数据包?

如果有任何帮助,它是ac#.net应用程序.

networking tcp wireshark

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

在什么情况下reflectClass(o.runtimeType)从reflect(o).type返回不同​​的结果?

dartdocsInstanceMirror.type:

"返回reflectee实际类的镜像.reflectee的类可能与通过在reflectee上调用runtimeType返回的对象不同."

那么在什么情况下会reflectClass(o.runtimeType)产生不同的结果reflect(o).type呢?

我尝试过示例代码:

import 'dart:mirrors';

class A{}

void main() {

  var string = "str";
  var boolean = true;
  var integer = 5;
  var map = {};
  var list = [];
  var custom = new A();

  var strRunT = string.runtimeType;
  var strRefT = reflect(string).type.reflectedType;
  var boolRunT = boolean.runtimeType;
  var boolRefT = reflect(boolean).type.reflectedType;
  var intRunT = integer.runtimeType;
  var intRefT = reflect(integer).type.reflectedType;
  var mapRunT = map.runtimeType;
  var mapRefT = reflect(map).type.reflectedType;
  var listRunT = list.runtimeType; …
Run Code Online (Sandbox Code Playgroud)

dart dart-mirrors

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

飞镖,异或两个哈希码总是会返回一个新的唯一哈希码吗?

我正在编写一个需要基于其两个字段的唯一哈希码的类,我想知道对 2 个字段哈希码进行异或是否足以为我的对象生成唯一且一致的哈希码?

class _TypeMatch{
  final Type _potentialSubtype;
  final Type _supertype;

  int _cachedHashCode;  

  _TypeMatch(this._potentialSubtype, this._supertype){
    _cachedHashCode = _potentialSubtype.hashCode ^ _supertype.hashCode;
  }

  int get hashCode => _cachedHashCode;

  bool operator ==(other){
    return other is _TypeMatch && _cachedHashCode == other._cachedHashCode;
  }
}
Run Code Online (Sandbox Code Playgroud)

我在这里看到了这个问题它似乎表明对另外两个哈希码进行异或是正确的做法,但它们首先将每个哈希码乘以 2 个大素数,我不确定为什么或是否有必要这样做。我主要关心的是对于两种类型 A 和 B:

new _TypeMatch(A, B) == new _TypeMatch(A, B) // is true for all A and B
Run Code Online (Sandbox Code Playgroud)

并且组合散列的计算尽可能高效,因为创建新的 _TypeMatch 将成为系统的核心部分,因此在整个系统中会明显感觉到任何性能低效。

更新

哈希码用于例如哈希映射或哈希表,以将存储的键/值平均分配到“槽”中。一个槽可以包含许多键/值,但通过使用哈希码,可以轻松快捷地在映射中找到一个槽,并从那里在更小的一组值中查找具体的键/值。无论键使用哪种数据类型,这都可以非常快速地提高在地图中搜索的速度。当哈希码为存储的键/值更改时,无法再通过键检索该值。你可以用1作为每个对象的哈希码,但这会破坏性能。您会通过良好的分布(不同对象的不同哈希码)获得相反的效果(最佳性能),但存在限制。例如,当您使用 32 位整数类型作为哈希码时,可能的哈希码数量是有限的。有关更多详细信息,请参阅http://en.wikipedia.org/wiki/Hash_table。不过,散列还有更多用例。

hashcode dart

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

是否可以将 golang 单元测试结果打印到文件中?

我在 pkg 目录中运行go test,并且在运行时将测试结果打印到控制台,但如果我可以将它们打印到 txt 文件甚至 html 文件,那就更理想了,是否可以这样做?我知道你可以从中获取覆盖率报告,并为那些优秀的生成 html 文件,但我认为可以对测试的实际结果(即哪些测试运行、哪些测试通过、哪些测试失败)做同样的事情。我一直在网上搜索,但甚至go test help没有提供任何将结果打印到文件的建议。

unit-testing go

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

默认MongoDB公共属性的序列化

我知道我必须在我的类上有公共读写属性,以便MongoDB驱动程序序列化/反序列化我的对象.但是我想知道是否有方法/首选方法从我的其余代码中隐藏写属性?

例如.

class Product
{
    private List<Release> releases;

    public List<Release> Releases
    {
        get
        {
            return new List<Release>(releases); //I can protect 'releases' when reading by passing a copy of it
        }
        set
        {
            releases = value; //BUT how can I protect release when writing?
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望MongoDB能够序列化/反序列化我的类型,但我不希望我的其余代码能够覆盖它本来应该是私有的字段/属性.有处理这个的模式吗?我曾想过有一个单独的ProductDoc类,它只是用作将对象放入和放出MongoDB的中介,但我不确定是否有更好的解决方案.

c# serialization mongodb

5
推荐指数
1
解决办法
2868
查看次数

为什么这个Dart广播流不接受多个监听呼叫

import 'dart:async';

void main() {
  var dog = new Dog();
  showTheDogACat(dog);
  print('outside');
  dog.bark();
}

class Cat{
  void runAway(msg){
    print("$msg I'm running away!");
  }
}

class Dog{  
  var _barkController = new StreamController();
  Stream get onBark => _barkController.stream.asBroadcastStream();
  void bark(){
    _barkController.add("woof");
  }
}

showTheDogACat(dog){
  var cat = new Cat();
  dog.onBark.listen((event)=>cat.runAway(event));
  dog.onBark.listen((event)=>print(event));       //why Exception: Stream already has subscriber?
  print('inside');
  dog.bark();
}
Run Code Online (Sandbox Code Playgroud)

为什么第二个dog.onBark.listen调用生成异常:流已经有订阅者?我认为广播流可能有很多订阅者?

stream event-listener dart

5
推荐指数
1
解决办法
827
查看次数