小编dar*_*sky的帖子

ByteBuffer和Byte数组

问题

我需要将两个整数和一个可变长度的字符串转换为字节.

我做了什么

我将每种数据类型转换为字节数组,然后将它们添加到字节缓冲区中.之后我将该缓冲区复制到一个字节数组,如下所示.

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)

现在这似乎有点多余.我当然可以将所有内容放入字节缓冲区并将其转换为字节数组.但是,我不知道我的字符串长度是多少.那么在这种情况下如何分配字节缓冲区呢?(要分配一个字节缓冲区,你必须指定它的容量)

java byte bytebuffer

7
推荐指数
1
解决办法
2万
查看次数

在VIM Split中滚动另一个窗口

如何:vsplit在VIM中滚动其他窗口?我到处寻找,但所有网站都在谈论如何同步两个窗口以便一起滚动.我想看一个文件,编辑它,同时滚动另一个.

vim scroll

7
推荐指数
1
解决办法
1869
查看次数

Emacs取消绑定模式的键绑定

我已经创建了一个自定义键绑定宏,如下所示:

(global-set-key (kbd "C-C C-c") "\C-a\C- \C-n\M-w\C-y")

问题是,C-c C-c被定义为python-send-bufferpython-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.

emacs key-bindings python-mode emacs24

7
推荐指数
1
解决办法
2181
查看次数

ASIHTTPRequest上的多个请求

我需要从三个不同的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)

这种方法如何区分不同的请求,以便我可以区别对待它?

谢谢,

iphone objective-c nsurlconnection asihttprequest

6
推荐指数
1
解决办法
3842
查看次数

Java中的Flyweight示例

我正在尝试用Java创建一个flyweight对象.我在Objective-C中使用了类似的概念(Objective-C中的Singleton类//我相信它们是相同的东西).

我想在网上找到一个教程或一个例子或解释,以了解如何创建一个flyweight对象并使用它,但我在谷歌上搜索,我找不到任何血统.我浏览了10页,他们基本上都是从一个网站抄袭,这个网站只是解释了这个概念.我理解这个概念 - 我需要一些东西来帮助我/教我如何用Java实现它.

任何人都有任何建议/教程?

谢谢!

java flyweight-pattern

6
推荐指数
1
解决办法
4369
查看次数

Python重写字符串__hash__

我正在尝试为字符串创建自定义散列函数.我想按重量按字符频率散列字符串.这样hi并且ih会产生相同的哈希值.我可以覆盖__hash__吗?

或者正在创建一个包装类,它包含字符串和覆盖,__hash__并且__eq__是唯一的方法?

python hash class

6
推荐指数
1
解决办法
2366
查看次数

在字典中覆盖Python的哈希函数

我正在尝试为某些对象创建自定义哈希函数,我将要将其编入字典.散列函数是唯一的(不是标准的Python函数).这对我来说非常重要:使用独特的功能.每个键的值都是一个列表.

假设我覆盖__hash__并最终为对象提供正确的哈希值.将:

dict = {}
dict[number_here] = value
Run Code Online (Sandbox Code Playgroud)

将值散列到位置编号中number_here,还是仍然位于Python的哈希表为该数字计算的位置?

打印dict仅显示项目,而不是它们的位置.但是,当我这样做时hash(4),结果是4.所以我假设这意味着整数被散列到它们各自的位置?

如果我错了,有人可以验证我的发现或向我解释一下吗?

python hash dictionary hashtable

6
推荐指数
1
解决办法
7443
查看次数

Ember应用程序请求Rails应用程序 - 跨域?

我在同一台服务器上有两个独立的应用程序,一个ember应用程序和一个rails应用程序.现在,我正在本地测试.

我的Ember请求不会发送到rails(localhost:3000).我似乎无法弄清楚这是否正在发生,因为它认为这是一个跨域请求.它是否会被视为跨域请求,即使它们位于同一台服务器上?如果是这样,那么无论如何都要避免这种跨域请求,因为它们位于同一台服务器上而不会影响安全性吗?或者我需要坚持JSONP?

javascript ruby-on-rails localhost cross-domain ember.js

6
推荐指数
1
解决办法
2945
查看次数

使用Rspec进行测试和模拟服务

我创建了一个名为Transaction的服务对象,它处理订单,设置付款,然后建立模型关联.

该类被称为Transaction,有两种方法,initializepay.我正在测试它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.设计测试助手不能在控制器之外使用,因为我在服务中测试,它将无法工作.

ruby testing rspec ruby-on-rails

6
推荐指数
1
解决办法
6356
查看次数

Argparse可选的stdin参数

我正在尝试指定一个采用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 arguments argparse

6
推荐指数
1
解决办法
4023
查看次数