问题列表 - 第9983页

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

提升异常

是否所有提升异常都来自std :: exception?如果不是,它们都来自某个基类异常类?

c++ boost exception-handling exception

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

更改浏览器缩放级别

我需要在我的网站上创建2个按钮来改变浏览器缩放级别(+)( - ).由于图像大小和布局问题,我正在请求浏览器缩放而不是css缩放.

嗯,这有可能吗?我听说过相互矛盾的报道.

javascript browser zoom

91
推荐指数
4
解决办法
19万
查看次数

从音频文件而不是麦克风识别语音

如何对来自音频文件(.mp3,wav)而不是麦克风的语音进行语音识别?

我希望能够从C#.NET和Delphi中做到这一点.

.net c# delphi speech-recognition

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

如何判断变量是可迭代的但不是字符串

我有一个函数接受一个参数,可以是单个项目或双项目:

def iterable(arg)
    if #arg is an iterable:
        print "yes"
    else:
        print "no"
Run Code Online (Sandbox Code Playgroud)

以便:

>>> iterable( ("f","f") )
yes

>>> iterable( ["f","f"] )
yes

>>> iterable("ff")
no

问题是字符串在技术上是可迭代的,所以我不能在尝试时捕获ValueError arg[1].我不想使用isinstance(),因为这不是很好的做法(或者我被告知).

python

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

如何在Google地图上叠加SVG图表?

我想在Google地图上添加叠加图片.该图像是我生成的SVG文件(带有SVGFig的Python).

我使用以下代码:

if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map_canvas"));
    map.setCenter(new GLatLng(48.8, 2.4), 12);

    // ground overlay
    var boundaries = new GLatLngBounds(new GLatLng(48.283188032632829, 1.9675270369830129), new GLatLng(49.187215000000002, 2.7771877478303999));
    var oldmap = new GGroundOverlay("test.svg", boundaries);
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.addOverlay(oldmap);
}
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,它适用于Safari 4,但它不适用于Firefox(使用Safari 3,背景不透明).

有没有人知道如何覆盖SVG?

PS1:我喜欢读一些作品或swa.ethz.ch/googlemaps的源代码,但似乎他们必须使用JavaScript代码来分析SVG并添加一个所有元素一个(但我没有理解所有来源...).

PS2:SVG由不同的填充路径和圆圈组成,具有透明度.如果没有解决方案覆盖我的SVG,我可以使用2种替代解决方案:

  • 光栅化SVG
  • 转换GPolygons中的路径和圆圈

但我真的不喜欢第一种解决方案,因为位图的质量很差,而且生成抗锯齿的时间也是如此.

对于第二种解决方案,弧,椭圆和圆必须分解成小的折线.为了取得好成绩,很多都是必要的.但是我有大约3000个圆弧和圆圈来绘制,所以......

javascript svg google-maps

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

责任链与类列表有什么优势?

最近,我正在与另一个程序员讨论重构一个充满"if"语句的巨大(1000行)方法的最佳方法.

代码是用Java编写的,但我想这个问题也可能发生在C#等其他语言中.

为了解决这个问题,他建议使用责任链模式.他建议有一个基础"处理程序"类.然后,"Handler1","Handler2"等将扩展"Handler".
然后,处理程序将具有"getSuccessor"方法,该方法将返回null(如果它是链的最后一个)或链的下一个Handler.
然后,"的handleRequest(请求)"功能,要么处理请求,或者将它传递给下一个链条,如果没有以前的解决方案的工作,它将返回空值只是或抛出异常.
要向链中添加新的Handler,编码器将转到链的最后一个元素并告诉它有一个新元素.要做某事,他只需要在链的第一个元素上调用handleRequest.

为了解决这个问题,我建议使用不同的方法.
我还有一个基础"Handler"类,带有"Handler1","Handler2",就像之前提到的方法一样.
但是,没有"getSuccessor"方法.相反,我有一个Collection类,其中包含一个处理程序列表(Vector,一个ArrayList,或者在这种情况下最好的).
handleRequest函数仍然存在,但它不会将调用传播给下一个处理程序.它只会处理请求或返回null.
要处理请求,可以使用

for(Handler handle : handlers){
    result = handle.handleRequest(request);
    if(result!=null) return result;
}
throw new CouldNotParseRequestException(); //just like in the other approach
Run Code Online (Sandbox Code Playgroud)

或者,为了防止代码重复,可以将"parseRequest(request)"方法添加到集合类中.要添加一个新的处理程序,可以转到集合构造函数(或static {}块,或者等价物)并简单地添加代码"addHandler(new Handler3());".

对于这种方法,我错过了什么样的责任链优势?哪种方法最好(假设一个最好的方法)?为什么?每种设计方法可能导致哪些潜在的错误和问题?

对于那些需要上下文的人来说,这是原始代码的样子:

if(x instanceof Type1)
{
//doSomething1
} else if(x instanceof Type2)
{
//doSomething2
}
//etc.
Run Code Online (Sandbox Code Playgroud)

java list chain-of-responsibility

17
推荐指数
2
解决办法
4802
查看次数

在函数签名中抛出关键字

throw在函数签名中使用C++ 关键字被认为是不良做法的技术原因是什么?

bool some_func() throw(myExc)
{
  ...
  if (problem_occurred) 
  {
    throw myExc("problem occurred");
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

c++ exception

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

条件变量,互斥锁和锁之间的差异

例如c ++ 0x接口

我很难搞清楚何时使用这些东西(简称cv,互斥锁和锁).任何人都可以解释或指向一个资源?

提前致谢.

c++ multithreading mutex condition-variable c++11

47
推荐指数
3
解决办法
4万
查看次数

Python:在字典中将变量链接/绑定在一起

第一篇文章,所以玩得好!

我有一个关于Python词典的相当基本的问题.我希望有一些dict值在另一个变量被更改时更新(或者至少在下次调用时重新计算) - 例如:

mass = 1.0
volume = 0.5
mydict = {'mass':mass,'volume':volume}
mydict['density'] = mydict['mass']/mydict['volume']
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,mydict ['density']只返回2.0.如果我改变mydict ['mass'] = 2.0,密度将不会更新.很好 - 我可以理解为什么 - 密度是由传递给声明时的值定义的.所以我想也许我可以用lambda表达式来解决这个问题,例如(为可怕的代码道歉!):

mydict['density_calc'] = lambda x,y: x/y
mydict['density'] = mydict['density_calc'](mydict['mass'],mydict['volume'])
Run Code Online (Sandbox Code Playgroud)

但同样,这只会返回原始密度,尽管改变了mydict ['mass'].作为最后的尝试,我尝试了这个:

def density(mass,volume): return mass/volume
mydict['density_calc'] = lambda x,y: density(x,y)
mydict['density'] = mydict['density_calc'](mydict['mass'],mydict['volume'])
Run Code Online (Sandbox Code Playgroud)

再一次,没有骰子.这似乎是一个非常简单的问题需要解决,所以提前道歉,但如果有人能帮助我,我会非常感激!

干杯,

戴夫

python variables dictionary

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