我们可以做些什么来将用一种语言编写的代码与用任何其他语言编写的代码集成?哪种技术更多/更少知道?我知道一些/大多数语言都可以编译成Java字节码,但我们如何处理其余的呢?
我需要编写一个客户端 - 服务器应用程序.我想用python编写它,因为我熟悉它,但我想知道python代码是否可以从C运行.我打算有两个C项目,一个包含服务器代码,一个包含客户端代码.
是否可以评估python代码并运行它?还有另一种方法吗?
底线是python代码必须从C运行,并且它的行为必须与在python解释器下运行完全相同.我现在问这个,因为我不想浪费时间编写python代码,以便稍后发现我无法实现这一点.作为旁注,我只打算使用基本的python模块(socket,select等).
编辑:也许这个编辑是有序的.我以前没有在C中嵌入python,我不知道它的行为是什么.问题是,服务器将有一个选择循环,因此将"永远"运行.C会让我这样做吗?
EDIT2:这就是我需要这样做的原因.在学校,老师要求我们在C中做一个非常复杂的客户端 - 服务器应用程序.我要作弊,在python中编写代码并将其嵌入到C中.
我在项目中有很多类,我想从脚本中编译所有类.问题是,类应按特定顺序编译,例如:我有一个名为A的类,它依赖于一个名为B的类.假设B类依赖于一个名为C的类.为了让我编译A类,我必须先编译B和C.
是否有一些工具可用于建立类的编译顺序,因此我不必解析每个类并自己确定?我会担心该工具可以保存一个文件,其中包含要编译的文件的顺序,以便我可以从我的脚本中解析它.
谢谢 !
有没有办法测试SQLite数据库中是否存在表?现在,我正在try catch块中创建表,如果抛出异常,我知道该表已经创建.当然必须有更好的方法,对吧?
假设我有这个:
class whatever(object):
def __init__(self):
pass
Run Code Online (Sandbox Code Playgroud)
而这个功能:
def create_object(type_name):
# create an object of type_name
Run Code Online (Sandbox Code Playgroud)
我希望能够这样称呼create_object:
inst = create_object(whatever)
Run Code Online (Sandbox Code Playgroud)
并获取一个实例whatever.我认为这应该是可行的而不使用eval,我想知道如何做到这一点.请注意,我没有使用字符串作为参数create_object.
我已经阅读了关于Java集合的Google Collections,Guava和静态导入文章的Beautiful代码,下面的代码片段引起了我的注意:
Map<String, Map<Long, List<String>>> map = Maps.newHashMap();
Run Code Online (Sandbox Code Playgroud)
问题是,我不明白该newHashMap方法可能返回的方式Map<String,Map<Long, List<String>>>.他们是怎么写这段代码的?什么时候成为可能?我的印象是你需要在构造函数调用中显式声明泛型参数.
我写了一个方法来从C++源文件中删除单行注释:
def stripRegularComments(text) {
def builder = new StringBuilder()
text.eachLine {
def singleCommentPos = it.indexOf("//")
def process = true
if(singleCommentPos > -1)
{
def counter = 0
it.eachWithIndex
{ obj,i ->
if((obj == '\'') || (obj == '"'))
counter++
if(i == singleCommentPos)
{
process = ((counter % 2) == 1)
if(!process)
return
}
}
if(!process)
{
def line = it.substring(0,singleCommentPos)
builder << line << "\n"
}
else
{
builder << it << "\n"
}
Run Code Online (Sandbox Code Playgroud)
} else {builder << it <<"\n"}}返回builder.toString()}
我测试了它: …
Run Code Online (Sandbox Code Playgroud) 在这个片段中:
find( sub {
print "found " . $File::Find::name . "\n";
}, ("."));
Run Code Online (Sandbox Code Playgroud)
会(".")是什么类型的?数组还是标量?
我想为我正在研究的项目添加一个持续集成工具.但是,我希望能够使用Lotus Notes发送构建结果.我已经涵盖了Lotus Notes部分,我希望你们帮我选择合适的工具.我会先用Java来做些什么,但是如果别的东西更好,我也不介意.
请仅提供我可以以某种方式影响构建过程的解决方案.
在阅读所提供的片段FormFiller(这里我有点意外了),我注意到这条线:
$f->add_filler( password => Interactive => []);
Run Code Online (Sandbox Code Playgroud)
这password => Interactive => []相当于{"password" => {"Interactive"=>[]}}?如果没有,它会变成什么?
interop ×2
java ×2
perl ×2
python ×2
c ×1
c++ ×1
collections ×1
comments ×1
compilation ×1
dependencies ×1
generics ×1
groovy ×1
hash ×1
header ×1
lotus-notes ×1
oop ×1
sql ×1
sqlite ×1
types ×1