我们在Ruby中发现了一些奇怪的代码,我想知道是否有人可以解释它:
$ irb
irb(main):001:0> APPLE = 'aaa'
=> "aaa"
irb(main):002:0> banana = APPLE
=> "aaa"
irb(main):003:0> banana << 'bbb'
=> "aaabbb"
irb(main):004:0> banana
=> "aaabbb"
irb(main):005:0> APPLE
=> "aaabbb"
Run Code Online (Sandbox Code Playgroud)
抓住那个?常量被附加到局部变量的同时.
已知行为?预期?
我是Lua的新手所以请忍受这个简单的问题:)
我只是试图迭代一个表,并修改它的值.但是,似乎我无法直接修改"价值"部分?
码:
for id,value in pairs(some_table) do
value = value * some_math_here
end
Run Code Online (Sandbox Code Playgroud)
我真的需要修改some_table [id],还是有更优雅的方式?
我使用的是QT 4.7.0.我在Windows中创建了一个项目.我在按钮上使用了一些图标,但是当我将.exe文件移动到另一台Windows机器时,图标不显示.如果我在开发机器上运行该程序,则会出现图标.
我创建了一个qrc文件并添加了图标.
我正在尝试使用该QString::toDouble()功能验证用户输入.该文件说,函数应该这样使用:
double QString::toDouble ( bool * ok = 0 ) const;
/*
Returns the string converted to a double value.
Returns 0.0 if the conversion fails.
If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.
*/
Run Code Online (Sandbox Code Playgroud)
所以我试图使用它*ok来抛出错误消息,如果它的错误,目的是只允许用户输入有效的整数或小数.问题是即使输入单词,消息也始终返回有效.到目前为止,这是我的代码:
void MainWindow::checkData()
{
bool validate;
QString tempStr;
tempStr = ui->lineEditValidate->text();
double converted = tempStr.toDouble(&validate);
if (validate = false)
{
QErrorMessage validateError;
validateError.showMessage("Input is Invalid");
validateError.exec();
}
else
{
QErrorMessage worksFine; …Run Code Online (Sandbox Code Playgroud) 我需要在Ubuntu 11.10中加载扩展.我尝试构建GLEW但是我得到以下奇怪的错误......
~/Downloads/glew-1.7.0$ make
cc -shared -Wl,-soname=libGLEW.so.1.7 -o lib/libGLEW.so.1.7.0 src/glew.pic_o -L/usr/X11R6/lib64 -lXmu -lXi -lGLU -lGL -lXext -lX11
/usr/bin/ld: cannot find -lXmu
/usr/bin/ld: cannot find -lXi
collect2: ld returned 1 exit status
make: *** [lib/libGLEW.so.1.7.0] Error 1
Run Code Online (Sandbox Code Playgroud)
这是我发现的建议(因此尝试没有成功):
sudo apt-get install --reinstall mesa-common-dev
sudo apt-get install --reinstall libx11-dev
Run Code Online (Sandbox Code Playgroud)
我还看到某个地方只是简单地把一个#define GL_GLEXT_EXTENSIONS放在文件的顶部,这也不起作用.
如果有人能告诉我如何解决这个奇怪的错误,那么我可以构建GLEW和/或向我展示如何在Linux中手动加载OpenGL扩展(我只看到如何在Windows中执行它的代码......)这将是伟大的!
我正在尝试将数值写入与列对齐的文本文件中.我的代码看起来像这样:
ofstream file;
file.open("try.txt", ios::app);
file << num << "\t" << max << "\t" << mean << "\t << a << "\n";
Run Code Online (Sandbox Code Playgroud)
它有效,除非值没有相同的数字,否则它们不对齐.我想要的是以下内容:
1.234567 -> 1.234
1.234 -> 1.234
1.2 -> 1.200
Run Code Online (Sandbox Code Playgroud) 我有一个函数A(),我执行其他八个'子函数',其中包括一个QProcess.如何从所有QProcesses获取返回代码?
例:
void Mainclass::A()
{
B();
C();
// ...
I();
}
void Mainclass::B()
{
QString CommandPath = "PathB";
QProcess *Process = new QProcess(this);
Process->setWorkingDirectory(MainDir);
Process->setStandardOutputFile(MainDir + "/geometries");
Process->start(CommandPath);
Process->waitForFinished();
QProcess::ExitStatus Status = Process->exitStatus();
if (Status == 0)
{
std::cout << "App executed!" << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
我发现了这个例子,但是我不了解如何自己实现它,因为我在我的应用程序中使用指针对象.
QObject::tr()我一直用于翻译包含数字的字符串的函数有两种形式:
tr("There are %n foo(s)", 0, foo.size());
tr("%1: %2").arg(QLocale().toString(bar.size())).arg(bar.name());
Run Code Online (Sandbox Code Playgroud)
除了您希望在同一个字符串中进行本地化和多元化之外,这些会占用您希望字符串中的数字的大多数情况.当然你可以打破翻译,但是你必须猜测这个字符串是否会在所有语言的相同位置中断(我决定大部分时间没有资格做出决定).
该QLocale文档指出...
当格式字符串中的位置说明符包含"L"时,QString :: arg()使用默认语言环境格式化数字,例如"%L1"
......所以第二种形式可以改写为......
tr("%L1: %2").arg(bar.size()).arg(bar.name());
Run Code Online (Sandbox Code Playgroud)
......这表明你可以将第一个表格重写为......
tr("There are %Ln foo(s)", 0, foo.size());
Run Code Online (Sandbox Code Playgroud)
这将编译并在Linguist中显示为多元化,但有人知道这是否也将本地化数字?我在任何文档中都找不到任何说法.
我正在使用Ubuntu 11.10,Qt 4,Qwt 6.0.1
问题是,一般来说一切正常,Qwt编译的例子没有任何问题,但是当我尝试从QPointF.x转换为double时,我得到了错误.有趣的是(在x86上)qreal应该重新定义double ...
这是不起作用的(
QPointF pt;
pt.setX(1.0);
pt.setY(2.0);
double px=pt.x;
Run Code Online (Sandbox Code Playgroud)
编译器返回错误:
error: argument of type ‘qreal (QPointF::)()const {aka double (QPointF::)()const}’ does not match ‘double’
Run Code Online (Sandbox Code Playgroud)
我做了些蠢事吗?
简而言之:
我需要将它转换为在继承自QwtSeriesData的类中使用,以在点之间进行自定义插值(在这种情况下,它不会是简单的线性插值).为此,我需要方法
double y(double x) const
Run Code Online (Sandbox Code Playgroud)
这将返回给定x的函数值
当我简化它以使用QwtSeriesData时,它编译.为了实现这一目标,只需要实施
QPointF sample(size_t i) const
size_t size() const
Run Code Online (Sandbox Code Playgroud)
但正如我所说,我需要自定义插值,所以似乎实现从QwtSyntheticPointData继承的接口是最好的选择.