我今天查看了一些Java代码,我发现了一些奇怪的语法:
public class Sample {
public int get()[] {
return new int[]{1, 2, 3};
}
}
Run Code Online (Sandbox Code Playgroud)
我认为无法编译并想修复我认为的错字,但后来我记得Java编译器确实接受了它!
有人可以帮我理解这是什么意思吗?它是一组函数吗?
在我的班级中更改我的getter方法(如版本2)是不好的做法.
版本1:
public String getMyValue(){
return this.myValue
}
Run Code Online (Sandbox Code Playgroud)
版本2:
public String getMyValue(){
if(this.myValue == null || this.myValue.isEmpty()){
this.myValue = "N/A";
}
return this.myValue;
}
Run Code Online (Sandbox Code Playgroud) 如何在.bat文件中一次启动2个应用程序?我现在的文字是
cd mydir
my.exe
my.exe difParams
//bat is finished. i dont want my.exe to close
Run Code Online (Sandbox Code Playgroud) 我无法弄清楚以下崩溃的原因(MSVC9):
//// the following compiles to A.dll with release runtime linked dynamically
//A.h
class A {
__declspec(dllexport) std::string getString();
};
//A.cpp
#include "A.h"
std::string A::getString() {
return "I am a string.";
}
//// the following compiles to main.exe with debug runtime linked dynamically
#include "A.h"
int main() {
A a;
std::string s = a.getString();
return 0;
} // crash on exit
Run Code Online (Sandbox Code Playgroud)
显然(?)这是由于可执行文件和DLL的不同内存模型.可能是字符串A::getString()返回是在A.dll中分配并在main.exe中释放?
如果是这样,为什么 - 以及在DLL(或可执行文件)之间传递字符串的安全方法是什么?不使用shared_ptr这样的包装器和自定义删除器.
为什么这不起作用?
# to reverse a part of the string in place
a = [1,2,3,4,5]
a[2:4] = reversed(a[2:4]) # This works!
a[2:4] = [0,0] # This works too.
a[2:4].reverse() # But this doesn't work
Run Code Online (Sandbox Code Playgroud) 我正在构建一个使用PyQt的小应用程序,并且很高兴在setup.py中声明该依赖项.
然而,根据这个博客(谷歌首次点击pyqt setuptools)说它无法完成,而且这里的最后一段也没有尝试去做.
更新:
显而易见的install_requires = [ 'pyqt >= 0.7' ]是setup.py:
D:\3rd\BuildBotIcon\my-buildboticon\python>setup.py test
running test
install_dir .
Checking .pth file support in .
C:\Python26-32\pythonw.exe -E -c pass
Searching for pyqt>=4.7
Reading http://pypi.python.org/simple/pyqt/
Reading http://www.riverbankcomputing.com/software/pyqt/
Reading http://www.riverbankcomputing.com/software/pyqt/download
No local packages or download links found for pyqt>=4.7
error: Could not find suitable distribution for Requirement.parse('pyqt>=4.7')
Run Code Online (Sandbox Code Playgroud) 如何在C++中读/写gzip文件?
这里的iostream包装类看起来不错,这是一个简单的用法示例:
gz::igzstream in(filename);
std::string line;
while(std::getline(in, line)){
std::cout << line << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
但我无法真正链接它(虽然我有/usr/lib/libz.a).一个简单的
g++ test-gzstream.cpp -lz
Run Code Online (Sandbox Code Playgroud)
不这样做(undefined reference to gz::gzstreambase::~gzstreambase()).
有没有一种简单的方法来检查合并/ rebase是否会产生文件冲突,而不实际执行合并/ rebase?
我希望能够决定是否:
由于错误的合并(由于人为错误以错误的方式解决冲突引起)更容易检测和反转,如果我做两个头的合并,而不是做了rebase.特别是如果我推动我的改变而后来意识到某些事情搞砸了.
(由于我们没有完全全面的测试套件,所以不可能事先检查所有内容.)
而且......我正在运行Windows.:)
按照WM_ENDESSION文档,当lParam的是ENDSESSION_CLOSEAPP和wParam为FALSE,"应用程序应该不会关机".
(我正在用Qt(C++)中的Windows事件/消息来关闭一些已启动的进程,但这只是上下文,不应该在这里有任何影响......)
我正在尝试找到一个像Maven(标准化构建和打包,工件仓库等)这样的工具,它支持Java(和C/C++),特别是Python和.NET(C#).特别需要良好的依赖管理.
我们在我们的地方运行一个混合的语言商店,目前本土的基于python的"über-buildsystem"应该可能会消失.请注意,它不会尝试进行详细构建,只处理模块/项目之间的依赖关系,下载已编译的工件(在C++情况下每个库几百兆)并在现有.sln/.vcproj上调用msbuild/easy_install/etc/etc文件来完成真正的构建.
它起作用,但主要是因为我构建它并知道它能做什么和不能做什么,并且当我需要新东西时我会扩展它.它并没有真正帮助其他开发人员进入它,我越来越觉得我们不应该关注它.(即使它没有那么多工作,似乎没有一个令人信服的选择.)
所以:
在Ant之上构建另一个Maven(但是具有更灵活的支持)(主要使用Beanshell)是我已经完成的事情.当前的Python东西是它的一个分支.
更新:
正如我上面所说,Ant + Ivy需要在顶部构建相当多,但它可能是比我们今天更好的基础,因为我们可以获得更多的构建任务和开箱即用的工件库.(参见Maven Like C++的依赖管理)
所有的帮助热烈赞赏!
c++ ×2
python ×2
arrays ×1
batch-file ×1
build ×1
class ×1
cmd ×1
distutils ×1
dll ×1
gzip ×1
gzipstream ×1
java ×1
lazy-loading ×1
maven ×1
mercurial ×1
message ×1
pyqt ×1
session ×1
setuptools ×1
syntax ×1
visual-c++ ×1
winapi ×1
zlib ×1