我很擅长使用双括号来编写脚本并遇到问题.我似乎无法让他们在Ubuntu Server 11.10中工作.我的脚本位于if_test.sh中.
#!/bin/bash
if [[ "14"=="14" ]]; then
echo "FOO"
fi
Run Code Online (Sandbox Code Playgroud)
当我运行这个简单的shell脚本时,我得到的输出是:if_test.sh:5:[[:not found
从终端运行bash --version后,我似乎正在运行GNU bash版本4.2.10.任何帮助将不胜感激.谢谢!
我在Java中看到过几个类似的例子,我希望有人可以解释发生了什么.看起来像一个新类可以内联定义,这对我来说似乎很奇怪.第一个打印输出行是预期的,因为它只是toString.然而第二个看起来像函数可以重写内联.这有技术术语吗?或者任何更深入的文档?谢谢!
如果我有以下代码:
public class Apple {
public String toString() {
return "original apple";
}
}
public class Driver {
public static void main(String[] args) {
System.out.println("first: " + new Apple());
System.out.println("second: " +
new Apple() {
public String toString() {
return "modified apple";
}
}
);
}
}
Run Code Online (Sandbox Code Playgroud)
代码输出:
first: original apple
second: modified apple
Run Code Online (Sandbox Code Playgroud) 我有一个客户端需要一个能识别口头命令的Android应用程序.根据我的理解,内置语音到文本功能实际上将数据发送到Google的服务器,然后发送回文本翻译.这是一个主要问题,因为语音数据非常敏感(除非数据在发送到Google或从Google发送时加密 - 但我怀疑它是加密的).
我能想到两个选项.首先是在Android上转换语音到文本,虽然这似乎是一个非常昂贵的操作.第二种可能性是让本地服务器为我转换数据(我可以加密语音数据和转发时的语音数据).这是CMU Sphinx能够实现的吗?值得注意的是,我也可以访问Asterisk服务器,这可能有助于此(我不知道).
实际上,应该只有大约200个单词需要被识别.我更喜欢开源/免费软件解决方案,但我也对商业解决方案(可能是FlexT9)持开放态度.理想情况下,我可以将音频流发送到某处,获取一个String作为文本,然后我可以使用String解析并执行其他操作.
我过去没有做太多的机器人或任何语音识别开发,所以我希望有人能够至少指出我正确的方向.谢谢!
在javascript中显示确认框时,如果是或否导致页面重定向,则单击是或否后似乎有延迟.延迟大约是确认框打开的持续时间.这只适用于Chrome.有没有人有这样的解决方案,所以Chrome没有延迟?
一个描述问题的简单示例:
<html>
<head></head>
<body>
<script type='text/javascript'>
var goToGoogle = confirm("Go to Google?");
if (goToGoogle) {
window.location.href="http://www.google.com";
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
在 java 中,我想确定在发生 TimeoutException 时填充未来结果的线程的当前堆栈。似乎 TimeoutException 提供的堆栈跟踪中的顶部条目仅指示调用 future.get() 的位置,而不是后台线程的状态。例如:
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<String> future = executor.submit(new Callable<String>() {
@Override
public String call() throws Exception {
Thread.sleep(10000);
return "";
}
});
try {
future.get(1, TimeUnit.MILLISECONDS);
} catch (TimeoutException e) {
e.printStackTrace();
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我发现最上面的条目是 future.get(1, TimeUnit.MILLISECONDS) 条目,而不是 Thread.sleep(10000)。我希望堆栈跟踪指示 Thread.sleep(10000) 因为这是当前正在执行的。有没有一种优雅的方式来做到这一点?
我发现,如果存在实际执行问题,那么 ExecutionException.printStackTrace() 将指示问题在后台线程中发生的位置。
我有一个接受a的功能
vector<vector<MyClass>>
Run Code Online (Sandbox Code Playgroud)
并修改MyClass实例.自从我编写任何C++以来已经很长时间了,我很难记住通过引用而不是通过值传递整个arg的内容.
我原来的方法签名是:
void modifyVectorOfVectors(vector<vector<MyClass> > vec) { ... }
Run Code Online (Sandbox Code Playgroud)
我想让这个内存有效,所以我最初改为:
void modifyVectorOfVectors(vector<vector<MyClass*> > vec) { ... }
Run Code Online (Sandbox Code Playgroud)
然后我意识到这意味着我的vec值仍然会复制所有内部向量.所以我将我的功能签名更改为:
void modifyVectorOfVectors(vector<vector<MyClass*> >* vec) { ... }
Run Code Online (Sandbox Code Playgroud)
这是否足够,或者我还需要做以下事情:
void modifyVectorOfVectors(vector<vector<MyClass*>* >* vec) { ... }
Run Code Online (Sandbox Code Playgroud)
有人可以强调所有这些之间的记忆差异吗?非常感谢!
我对 SQL 很陌生(我正在使用 MySQL)并且需要一些帮助。我目前正在尝试从名为 PERSON 的表中选择最常见的年龄。假设 PERSON 有一个 AGE 列,其值为:10、10、20、20、30。查询应返回值 10 和 20。
以下查询仅检索顶行 (20):
SELECT AGE FROM PERSON GROUP BY AGE ORDER BY COUNT(*) DESC LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
我的另一个想法是尝试类似的事情:
SELECT AGE FROM PERSON GROUP BY AGE HAVING COUNT(AGE) = MAX(COUNT(AGE));
Run Code Online (Sandbox Code Playgroud)
这会返回一个错误,指出组函数的使用无效。
任何帮助将不胜感激。谢谢!
我对正则表达式比较新,可以使用一些帮助.有人可以提供正则表达式(我使用Perl)从URL中提取查询字符串吗?我尝试了以下但得到一个空字符串:
my $string = 'http://www.google.com?queryArg1=1&queryArg2=2';
$string =~ s/^(.*)?//;
Run Code Online (Sandbox Code Playgroud)
理想情况下,此示例将提供以下字符串:queryArg1 = 1&queryArg2 = 2
如果你可以把它变成一个哈希,那就更棒了:
my $hash = {queryArg1 => 1,
queryArg2 => 2};
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
我有以下代码.我不明白为什么在B.GetNum()中调用第一个条件.如何确保在main中删除我的B类没有尝试使用已删除的变量?
class A
{
public:
A(int num) : m_num(num) {}
int GetNum() { return m_num; }
private:
int m_num;
};
class B
{
public:
B(A* a_) : a(a_) {}
int GetNum()
{
if (a != nullptr)
{
return a->GetNum(); // Why does this branch get called?
}
else
{
return -1;
}
}
private:
A* a;
};
int _tmain(int argc, _TCHAR* argv[])
{
A* a = new A(5);
B b = B(a);
delete a;
a = nullptr;
int result = …Run Code Online (Sandbox Code Playgroud)