哪个是实现返回数字绝对值的操作的最快方法?
x=root(x²)
Run Code Online (Sandbox Code Playgroud)
要么
if !isPositive(x):
x=x*(-1)
Run Code Online (Sandbox Code Playgroud)
实际上这个问题可以翻译为,有多快if(为什么请).
我的大学程序教授总是告诉我要避免使用ifs,因为它们非常慢,但我总是忘记问多慢和为什么.这里有人知道吗?
我是一个老的(但不是太老)Java程序员,决定学习C++.但我已经看到了很多C++编程风格,是......好吧,该死的!
把类定义放在头文件中的所有东西,以及不同源文件中的方法 - 调用函数无处不在,而不是使用类中的方法.所有这一切似乎......错了!
最后,有没有理由让我继续对OOP进行大屠杀,以及编程中任何好的和正义的东西,或者我可以忽略那些老式的C++约定,并使用我良好的Java编程风格?
顺便说一句,我正在学习C++,因为我想做游戏编程.
这是一个例子:
在C++网站上,我找到了一个Windows实现:
class WinClass
{
public:
WinClass (WNDPROC wndProc, char const * className, HINSTANCE hInst);
void Register ()
{
::RegisterClass (&_class);
}
private:
WNDCLASS _class;
};
Run Code Online (Sandbox Code Playgroud)
该类位于头文件和构造函数中:
WinClass::WinClass (WNDPROC wndProc, char const * className, HINSTANCE hInst)
{
_class.style = 0;
_class.lpfnWndProc = wndProc; // Window Procedure: mandatory
_class.cbClsExtra = 0;
_class.cbWndExtra = 0;
_class.hInstance = hInst; // Owner of the class: mandatory
_class.hIcon = 0;
_class.hCursor = ::LoadCursor (0, IDC_ARROW); // Optional …Run Code Online (Sandbox Code Playgroud) 我有这段代码:
@RequestMapping(value = "/test.json", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
public @ResponseBody Object[] generateFile(@RequestParam String tipo) {
Object[] variaveis = Variavel.getListVariavelByTipo(tipo);
return variaveis;
}
Run Code Online (Sandbox Code Playgroud)
据我所知,它应该接受test.json?tipo = H的请求并返回Variavel []的JSON表示,但是当我提出这样的请求时,我得到:
HTTP状态406 -
类型状态报告
信息
description此请求标识的资源只能根据请求"accept"标题生成具有不可接受特征的响应()
通过使用以下函数,我可以得到预期的json:
@RequestMapping(value = "/teste.json")
public void testeJson(Model model, @RequestParam String tipo) {
model.addAttribute("data", Variavel.getListVariavelByTipo("H"));
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
好吧,经过很长一段时间用C#编写.net程序,我开始对静态类型语言带来的所有语法垃圾感到愤怒和沮丧.现在我想改用动态类型语言,它利用了CLI.所以我搜索了一下,我不喜欢我所看到的.我首先找了IronPython.但该项目感觉杂乱无章,它看起来并不好看.然后我听说了Boo.我喜欢boo,理想和所有,但它有点像项目停止.然后我听说IronRuby,但该项目仍处于测试阶段,所以我决定等到它变得更加成熟.
因为我找不到一个好的CLR兼容动态语言,我问你们你们(你们)会用什么?
由于人们开始询问不选择IronPython的原因是什么.好吧,原因是,正如我之前所说的那样,它似乎杂乱无章.为什么?
1-主页指向codeplex的另一个页面,主页应该是干净的,只是指出IronPython的优点,以IronRuby页面为例http://www.ironruby.net/它隐藏了语言开发的东西user(即使用户在使用之前必须访问IronRuby的svn).IPython在创建时试图添加什么样的问题.是否有包含此类信息的页面?那么页面就在那里,但它隐藏在"更多信息页面"中的一堆无意义的文章链接中.在Boo的页面上,它清晰可见,名为Manifesto http://boo.codehaus.org/BooManifesto.pdf.
我有更多的感觉,即IPython只是一个家庭酿造的翻译,尽管它实际上具有质量.我觉得下载Boo并使用IronPython更安全(但不用担心微软我也下载了IPython).
关于Duck-Typing和Boo的静态打字,它们似乎对我来说都很好.
这是我的脚本:
#!/bin/bash
echo "Digite o local em que deseja instalar o IGRAFU(pressione enter para
instalar em
${HOME}/IGRAFO):"
read caminho
if test -z $caminho
then
caminho="${HOME}/IGRAFO"
fi
echo "O IGRAFU será instalado no diretório: $caminho"
mkdir -pv $caminho
mv -v ./* $caminho
echo "Pronto!"
Run Code Online (Sandbox Code Playgroud)
在'read caminho',我可能会从用户那里收到像〜/ somefolder这样的路径.当脚本收到那种路径时,mv和mkdir都不会进行代码扩展,所以它会尝试创建一个〜/ somefolder而不是/ home/username/somefolder,因此会失败.
如何确保波浪号将转换为HOME变量?
在C#中创建文件同步程序时,我尝试copy在LocalFileItem类中创建一个方法,其中使用的System.IO.File.Copy(destination.Path, Path, true)方法Path是a string.
用目标执行此代码后.Path = "C:\\Test2"而this.Path = "C:\\Test\\F1.txt"我得到一个异常说我不具备所需的文件权限做此操作C:\测试,但C:\测试是通过自己拥有的(当前用户).
有谁知道发生了什么,或者如何解决这个问题?
这是完整的原始代码.
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace Diones.Util.IO
{
/// <summary>
/// An object representation of a file or directory.
/// </summary>
public abstract class FileItem : IComparable
{
protected String path;
public String Path
{
set { this.path = value; }
get { return this.path; }
} …Run Code Online (Sandbox Code Playgroud) 我有两个python安装,2.5和2.6我想将默认的python解释器从2.5更改为2.6.谁知道怎么样?
我喜欢几乎所有的东西都使用python,并且总是清楚地知道如果由于某种原因我在我的python代码中找到了瓶颈(由于python的限制),我总是可以使用集成到我的代码中的C脚本.
但是,当我开始阅读有关如何集成python 的指南时.在文章中,作者说:
人们可能希望在C或C++中扩展Python有几个原因,例如:
- 在现有库中调用函数.
- 向Python添加新的内置类型
- 优化代码中的内部循环
- 将C++类库暴露给Python
- 将Python嵌入C/C++应用程序中
关于表现没什么.所以我再问一遍,将python与c集成以获得性能是否合理?
我正在为我的程序编写一个插件系统,我无法解决一件事:
class ThingLoader(object):
'''
Loader class
'''
def loadPlugins(self):
'''
Get all the plugins from plugins folder
'''
from diones.thingpad.plugin.IntrospectionHelper import loadClasses
classList=loadClasses('./plugins', IPlugin)#Gets a list of
#plugin classes
self.plugins={}#Dictionary that should be filled with
#touples of objects and theirs states, activated, deactivated.
classList[0](self)#Runs nicelly
foo = classList[1]
print foo#prints <class 'TestPlugin.TestPlugin'>
foo(self)#Raise an exception
Run Code Online (Sandbox Code Playgroud)
测试插件看起来像这样:
import diones.thingpad.plugin.IPlugin as plugin
class TestPlugin(plugin.IPlugin):
'''
classdocs
'''
def __init__(self, loader):
self.name='Test Plugin'
super(TestPlugin, self).__init__(loader)
Run Code Online (Sandbox Code Playgroud)
现在IPlugin看起来像这样:
class IPlugin(object):
'''
classdocs
'''
name=''
def …Run Code Online (Sandbox Code Playgroud) 我正在创建一个名为TetraQueue继承System.Collections.Generic.Queue类重写Dequeue方法的类,这里是代码:
public class TetraQueue : Queue<Tetrablock>
{
public override Tetrablock Dequeue()
{
return base.Dequeue();
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试编译这个时,我得到:
错误TetraQueue.Dequeue()':找不到合适的方法来覆盖TetraQueue.cs
提前致谢.
我怎么知道方法是否是虚拟的(避免这种情况)?
我是Ant的新手,所以不要在官方的bug列表上发布这个(因为它可能不是一个bug),我决定在这里发帖:
当我运行我的Ant build.xml文件时,除了构建目录之外,一切都运行良好,而不是将属性$ {classes.dir}转换为build/ver_2.0.0/classes,它创建了一个文件$ {cv.build.dir} /班
这是蚂蚁代码的一部分:
<!--Properties-->
<property name="build.ver" value="2.0.0"/>
<property name="src.dir" value="src"/>
<property name="lib.dir" value="lib"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${cv.build.dir}/classes"/>
<property name="jar.dir" value="${cv.build.dir}/jar"/>
<property name="main-class" value="br.uesc.computacao.estagio.controlador.ControladorModoExecucao"/>
<property name="cv.dir" value="ver_${build.ver}"/>
<property name="cv.src.dir" value="${src.dir}/${cv.dir}"/>
<property name="cv.build.dir" value="${build.dir}/${cv.dir}"/>
...
<target name="compile">
<mkdir dir="${classes.dir}"/>
Run Code Online (Sandbox Code Playgroud)