小编hiz*_*zki的帖子

ASTNode 的 accept() 方法是做什么的,它是如何使用 ASTVisitor 的?

acceptASTNode的方法有什么作用(javadoc 没有太大帮助...)以及何时visit(Expression node)调用该方法?这是我需要如何使用它的示例代码:

final List<Expression> listi = new ArrayList<Expression>();
String stringi = opi.generate(entryContract, true_false_maybe);
// stringi representes an expression, for example "g!=h".
parser.setSource(stringi.toCharArray());
unit = (CompilationUnit) parser.createAST(null); 
ASTNode astRoot = unit.getRoot();
astRoot.accept(new ASTVisitor() {
 public boolean visit(Expression node) {
  listi.add(node);
  return true;
 }
});
Run Code Online (Sandbox Code Playgroud)

谢谢

java visitor abstract-syntax-tree

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

before_filter与另一个控制器

我正在尝试创建一个操作,如果用户已登录,将检查每个页面.为此,在控制器中Home我创建了此方法:

def check_session
  if !session[:user_id]
    redirect_to :action=> 'login'
  end
end
Run Code Online (Sandbox Code Playgroud)

我已将此代码放在控制器的头部:

before_filter :check_session, :except => [:sub_layout, :authenticate, :login]
Run Code Online (Sandbox Code Playgroud)

现在我想check_session从页面之外使用Home,让我们在页面中说Users.调用不同控制器的方法的正确语法是before_filter什么?

ruby ruby-on-rails before-filter

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

MPI_Recv:接收的大小与发送的大小不同

我正在编写一个程序来检查使用该MPI库的最短路径.有两种情况:
要么我找到了更好的路径,在这种情况下,缓冲区的第一个插槽将处于状态resultBuff[0] = 1,我将需要检查缓冲区的其余内容以获得更好的路径.
另一种情况是resultBuff[0] = 0,我不会在缓冲区的其他单元格中检测到任何值.

我可以使用单独的MPI_Isend电话:

如果我找到了更好的路径并将其存储resultBuff[1]resultBuff[10]:

MPI_Isend((void*)sendBuff, 11, MPI_INT, 0, 1, MPI_COMM_WORLD, &request);
Run Code Online (Sandbox Code Playgroud)

如果没有找到更好的路径:

MPI_Isend((void*)sendBuff, 1, MPI_INT, 0, 1, MPI_COMM_WORLD, &request);
Run Code Online (Sandbox Code Playgroud)

在这两种情况下我都会使用

MPI_Recv( (void*)resultBuff, 11, MPI_INT, MPI_ANY_SOURCE, 1, MPI_COMM_WORLD, &status);
Run Code Online (Sandbox Code Playgroud)

收到结果.

这会有用吗?
如果是这样,如果不发送更好的路径,我会节省通信费用吗?

注意:resultBuff大小为11.

c mpi

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

random.expovariate等效于泊松过程

我在某处读到python库函数random.expovariate产生的等效间隔等于Poisson Process事件.
是真的如此,还是应该对结果强加一些其他功能?

python math statistics poisson

5
推荐指数
2
解决办法
9243
查看次数

在从另一个异常中展开堆栈时抛出异常会发生什么?

例如,在以下代码中:

#include <iostream>
using namespace std;
class A {
     public:
           A() { cout << "A::A()" << endl; }
           ~A() { cout << "A::~A()" << endl; throw "A::exception"; }
     };
class B {
     public:
           B() { cout << "B::B()" << endl; throw "B::exception"; }
           ~B() { cout << "B::~B()"; }
     };
int main(int, char**)
{
     try {
           cout << "Entering try...catch block" << endl;
           A objectA;
           B objectB;
           cout << "Exiting try...catch block" << endl;
     }
     catch (char* ex) {
           cout …
Run Code Online (Sandbox Code Playgroud)

exception-handling

4
推荐指数
1
解决办法
2486
查看次数

Rails中包含默认的js

在创建新的Rails应用程序时,它会自动提供几个非常大的js文件.在应用程序布局中,默认情况下,所有这些都加载到页面中:

<%= javascript_include_tag :defaults %>
Run Code Online (Sandbox Code Playgroud)

我想知道,是不是加载所有那些javascripts可以使网站可能更慢?
如果是这样,我在哪里可以改变定义:defaults?或者我应该只包括我需要的那些并删除上面提到的代码行?

谢谢

html javascript ruby-on-rails

3
推荐指数
1
解决办法
3665
查看次数

Mac上的版本控制

我是一名学生,我对源代码控制的使用主要是学术性的(硬件分配,2-4人项目等).
到目前为止,我一直在使用谷歌代码托管的Subversion,并使用eclipse插件来管理我的存储库.

最近我听说过git,根据我的理解,每次需要在每两个合作伙伴之间进行同步,以及一些名为Mercurial的东西.
所以基本上我的问题有三个部分:
建议使用哪种源控制系统以及git提供哪些好处?值得学习吗?
哪个是支持这个系统的好主机?
管理我的存储库的最佳工具是什么?是否比Eclipse插件更好地使用命令行?或者是否有其他推荐的软件?

如果我的问题是模糊的请评论,我很乐意修改它.

svn git version-control git-svn

3
推荐指数
1
解决办法
217
查看次数

case语句中的变量赋值(bash)

我试图解析我的bash脚本中的传入选项,并将值保存在变量中.这是我的代码:

#!/bin/bash 

while getopts "H:w:c" flag
do 
#  echo $flag $OPTIND $OPTARG
    case $flag in
    H) host = "$OPTARG"
    ;;
    w) warning = "$OPTARG"
    ;;
    c) critical = "$OPTARG"
    ;;
    esac
done
Run Code Online (Sandbox Code Playgroud)

但是,'case'中的语句必须是命令行命令,所以我无法进行所需的赋值.这样做的正确方法是什么?

bash command-line switch-statement

3
推荐指数
1
解决办法
4979
查看次数

从PHP中的引号中提取文本

我有一个PHP页面,它从包含在引号中的外部源代码中获取文本.如何剥离它们?
例如:

input: "This is a text"
output: This is a text
Run Code Online (Sandbox Code Playgroud)

请回答完整的PHP编码,而不仅仅是正则表达式...

php regex quotations

-1
推荐指数
1
解决办法
257
查看次数