问题
我需要将两个整数和一个可变长度的字符串转换为字节.
我做了什么
我将每种数据类型转换为字节数组,然后将它们添加到字节缓冲区中.之后我将该缓冲区复制到一个字节数组,如下所示.
byte[] nameByteArray = cityName.getBytes();
byte[] xByteArray = ByteBuffer.allocate(4).putInt(x).array();
byte[] yByteArray = ByteBuffer.allocate(4).putInt(y).array();
ByteBuffer byteBuffer = ByteBuffer.allocate(nameByteArray.length + xByteArray.length + yByteArray.length);
Run Code Online (Sandbox Code Playgroud)
现在这似乎有点多余.我当然可以将所有内容放入字节缓冲区并将其转换为字节数组.但是,我不知道我的字符串长度是多少.那么在这种情况下如何分配字节缓冲区呢?(要分配一个字节缓冲区,你必须指定它的容量)
如何:vsplit在VIM中滚动其他窗口?我到处寻找,但所有网站都在谈论如何同步两个窗口以便一起滚动.我想看一个文件,编辑它,同时滚动另一个.
我已经创建了一个自定义键绑定宏,如下所示:
(global-set-key (kbd "C-C C-c") "\C-a\C- \C-n\M-w\C-y")
问题是,C-c C-c被定义为python-send-buffer在python-mode.所以我的宏适用于除python-mode之外的所有模式.我假设python-mode在我的init文件之后进行评估,因此它会覆盖该键绑定.
我尝试C-c C-c使用(eval-after-load "python-mode")和使用取消设置,global-unset-key但这不起作用.C-c C-c在python中始终映射到python-send-buffer.
我怎样才能完全禁用Python C-c C-c,而是使用我的宏?
我正在使用Emacs 24.2.1.
我需要从三个不同的URL下载三组不同的数据.我决定使用ASIHTTPRequest.其中两个URL是我需要解析的JSON提要,其中一个是我需要在本地存储的.txt文件.
现在ASIHTTPRequest网站上针对异步请求的示例显示以下内容:
- (IBAction)grabURLInBackground:(id)sender {
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
Run Code Online (Sandbox Code Playgroud)
要传递多个网址,我可以在三个不同的网址上调用"请求".但我不确定如何在requestFinished方法中处理它们.文档显示为:
- (void)requestFinished:(ASIHTTPRequest *)request {
// Use when fetching text data
NSString *responseString = [request responseString];
// Use when fetching binary data
NSData *responseData = [request responseData];
}
Run Code Online (Sandbox Code Playgroud)
这种方法如何区分不同的请求,以便我可以区别对待它?
谢谢,
我正在尝试用Java创建一个flyweight对象.我在Objective-C中使用了类似的概念(Objective-C中的Singleton类//我相信它们是相同的东西).
我想在网上找到一个教程或一个例子或解释,以了解如何创建一个flyweight对象并使用它,但我在谷歌上搜索,我找不到任何血统.我浏览了10页,他们基本上都是从一个网站抄袭,这个网站只是解释了这个概念.我理解这个概念 - 我需要一些东西来帮助我/教我如何用Java实现它.
任何人都有任何建议/教程?
谢谢!
我正在尝试为字符串创建自定义散列函数.我想按重量按字符频率散列字符串.这样hi并且ih会产生相同的哈希值.我可以覆盖__hash__吗?
或者正在创建一个包装类,它包含字符串和覆盖,__hash__并且__eq__是唯一的方法?
我正在尝试为某些对象创建自定义哈希函数,我将要将其编入字典.散列函数是唯一的(不是标准的Python函数).这对我来说非常重要:使用独特的功能.每个键的值都是一个列表.
假设我覆盖__hash__并最终为对象提供正确的哈希值.将:
dict = {}
dict[number_here] = value
Run Code Online (Sandbox Code Playgroud)
将值散列到位置编号中number_here,还是仍然位于Python的哈希表为该数字计算的位置?
打印dict仅显示项目,而不是它们的位置.但是,当我这样做时hash(4),结果是4.所以我假设这意味着整数被散列到它们各自的位置?
如果我错了,有人可以验证我的发现或向我解释一下吗?
我在同一台服务器上有两个独立的应用程序,一个ember应用程序和一个rails应用程序.现在,我正在本地测试.
我的Ember请求不会发送到rails(localhost:3000).我似乎无法弄清楚这是否正在发生,因为它认为这是一个跨域请求.它是否会被视为跨域请求,即使它们位于同一台服务器上?如果是这样,那么无论如何都要避免这种跨域请求,因为它们位于同一台服务器上而不会影响安全性吗?或者我需要坚持JSONP?
我创建了一个名为Transaction的服务对象,它处理订单,设置付款,然后建立模型关联.
该类被称为Transaction,有两种方法,initialize和pay.我正在测试它spec/services/(它在app/services).
该initialize方法接受account用户传入的一些参数以处理订单.
我想pay用rspec 测试.我该如何进行这样的测试?这个功能有很多功能.例如,它创建新模型,然后在它们之间建立一些关联.
到目前为止,我创建了一个双重 account如下:
@account = double("account", :confirmed => true, :confirmed? => true)
但是,交易支付方法中使用了许多功能(和关联).因此,例如当调用这些关联时(一旦我Transaction.pay在测试中调用),它就会返回一个错误:
ActiveRecord::AssociationTypeMismatch:
Business(#70250016824700) expected, got RSpec::Mocks:.
Run Code Online (Sandbox Code Playgroud)
该business模型是双倍的account,并作为属性添加@account.如何在其中创建新模型和关联时测试我的Transaction.pay?
如上所示,我是否需要模拟所有这些?或者有更好的方法吗?
我正在使用FactoryGirl,但我无法使用它,因为我的account模型使用Devise.设计测试助手不能在控制器之外使用,因为我在服务中测试,它将无法工作.
我正在尝试指定一个采用stdin的可选参数。这将主要用于我程序中的管道数据someprog that outputs | python my_prog。
我遵循了argparse文档,并且在Stackoverflow上阅读了很多与此相关的问题/答案,但是似乎没有一个对我有用。
这是我最初拥有的:
parser = argparse.ArgumentParser(description='Upgrade Instance.')
parser.add_argument('--app', '-a', dest='app', action='store', required=True)
parser.add_argument('--version', '-v', dest='version', action='store', default='', required=False)
parser.add_argument('--config', '-c', dest='config', action='store', default = '', required=False)
args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
现在我想做的是允许用户version使用管道来传递,而不是传递给它。
我添加parser.add_argument('infile', nargs='?', type=argparse.FileType('r'), default=sys.stdin)到顶部,但这使其成为位置参数。那怎么可能?我以为nargs=?它是可选的。
我需要它作为可选参数。所以我将其更改为:
parser.add_argument('--infile', nargs='?', type=argparse.FileType('r'), default=sys.stdin)
Run Code Online (Sandbox Code Playgroud)
这使其成为可选参数,但是如果未传递任何管道,则程序将挂起,等待标准输入作为标准输入。删除default=sys.stdin和管道到我的程序,我得到:
close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr
Run Code Online (Sandbox Code Playgroud)
运行时。当我打印时args,我得到:Namespace(app='app', config='', g=False, hosts='03.app', infile=None, version='')。
看来我正在做的事情非常简单,常见,很多人都问过这件事。但这似乎与我无关。
关于如何使它工作的任何建议?
python ×3
hash ×2
java ×2
argparse ×1
arguments ×1
byte ×1
bytebuffer ×1
class ×1
cross-domain ×1
dictionary ×1
emacs ×1
emacs24 ×1
ember.js ×1
hashtable ×1
iphone ×1
javascript ×1
key-bindings ×1
localhost ×1
objective-c ×1
python-mode ×1
rspec ×1
ruby ×1
scroll ×1
testing ×1
vim ×1