小编Rya*_* Yu的帖子

在签名为return int的方法中返回null?

public int pollDecrementHigherKey(int x) {
            int savedKey, savedValue;
            if (this.higherKey(x) == null) {
                return null;  // COMPILE-TIME ERROR
            }
            else if (this.get(this.higherKey(x)) > 1) {        
                savedKey = this.higherKey(x);
                savedValue = this.get(this.higherKey(x)) - 1;
                this.remove(savedKey);
                this.put(savedKey, savedValue);
                return savedKey;
            }
            else {
                savedKey = this.higherKey(x);
                this.remove(savedKey);
                return savedKey;
            }
        }
Run Code Online (Sandbox Code Playgroud)

该方法位于一个类,它是TreeMap的扩展,如果这有任何区别......任何想法为什么我不能在这里返回null?

java null return

35
推荐指数
1
解决办法
9万
查看次数

使用urlopen.read中的"byte-like object"和JSON?

只是试图测试非常简单的Python JSON命令,但我遇到了一些麻烦.

urlopen('http://www.similarsitesearch.com/api/similar/ebay.com').read()
Run Code Online (Sandbox Code Playgroud)

应该输出

'{"num":20,"status":"ok","r0":"http:\\/\\/www.propertyroom.com\\/","r1":"http:\\/\\/www.ubid.com\\/","r2":"http:\\/\\/www.bidcactus.com\\/","r3":"http:\\/\\/www.etsy.com\\/","r4":"http:\\/\\/us.ebid.net\\/","r5":"http:\\/\\/www.bidrivals.com\\/","r6":"http:\\/\\/www.ioffer.com\\/","r7":"http:\\/\\/www.shopgoodwill.com\\/","r8":"http:\\/\\/www.beezid.com\\/","r9":"http:\\/\\/www.webidz.com\\/","r10":"http:\\/\\/www.auctionzip.com\\/","r11":"http:\\/\\/www.overstock.com\\/","r12":"http:\\/\\/www.bidspotter.com\\/","r13":"http:\\/\\/www.paypal.com\\/","r14":"http:\\/\\/www.ha.com\\/","r15":"http:\\/\\/www.onlineauction.com\\/","r16":"http:\\/\\/bidz.com\\/","r17":"http:\\/\\/www.epier.com\\/","r18":"http:\\/\\/www.sell.com\\/","r19":"http:\\/\\/www.rasmus.com\\/"}'
Run Code Online (Sandbox Code Playgroud)

但我得到了相同的字符串,b前面有一个字符串:

b'{"num":20,"status":"ok","r0":"http:\\/\\/www.propertyroom.com\\/","r1":"http:\\/\\/www.ubid.com\\/","r2":"http:\\/\\/www.bidcactus.com\\/","r3":"http:\\/\\/www.etsy.com\\/","r4":"http:\\/\\/us.ebid.net\\/","r5":"http:\\/\\/www.bidrivals.com\\/","r6":"http:\\/\\/www.ioffer.com\\/","r7":"http:\\/\\/www.shopgoodwill.com\\/","r8":"http:\\/\\/www.beezid.com\\/","r9":"http:\\/\\/www.webidz.com\\/","r10":"http:\\/\\/www.auctionzip.com\\/","r11":"http:\\/\\/www.overstock.com\\/","r12":"http:\\/\\/www.bidspotter.com\\/","r13":"http:\\/\\/www.paypal.com\\/","r14":"http:\\/\\/www.ha.com\\/","r15":"http:\\/\\/www.onlineauction.com\\/","r16":"http:\\/\\/bidz.com\\/","r17":"http:\\/\\/www.epier.com\\/","r18":"http:\\/\\/www.sell.com\\/","r19":"http:\\/\\/www.rasmus.com\\/"}'
Run Code Online (Sandbox Code Playgroud)

随后,当我试着跑

json.loads(urlopen('http://similarsitesearch.com/api/similar/ebay.com').read())
Run Code Online (Sandbox Code Playgroud)

它给了我错误信息:

TypeError:不能在类字节对象上使用字符串模式"

我假设与之有关b

urlopen从中导入urllib.request,我正在运行Python 3.

有任何想法吗?

python urlopen python-3.x

26
推荐指数
4
解决办法
2万
查看次数

去切片 - 容量/长度?

试着从现在的教程中学习,并提出一个非常基本的问题:

 func main() {
  a := make([]int, 5)
  // [0,0,0,0,0] len=5 cap=5

  b := make([]int, 0, 5)
  // [] len=0 cap=5

  c := b[:2]
  // [0,0] len=2 cap=5

  d := c[2:5]
  // [0,0,0] len=3 cap=3
}
Run Code Online (Sandbox Code Playgroud)

为什么c看起来像是[0,0]长度2?b因为它原来并没有被归零[].因此,没有设置cb[:2]零出前两个元素?

另外,为什么容量为d3?非常困惑.

提前致谢.

arrays go slice

15
推荐指数
1
解决办法
4657
查看次数

Rails 4 + Paperclip + S3:更改端点以访问用户模型中的S3存储桶?

我想,对于这个问题应该是一个非常简单的解决办法,但我似乎无法让它发挥作用.我有一个Rails 4应用程序,一个photograph带有Paperclip属性设置的用户模型,我把它链接到S3.

这是用户模型:

  has_attached_file :photograph,
  :styles => { :medium => "300x300>", :thumb => "100x100>" },
  :storage => :s3,
  :bucket => " my-bucket-name ",
  :default_url => '/images/:attachment/missing_:style.png',
  :s3_credentials => S3_CREDENTIALS
Run Code Online (Sandbox Code Playgroud)

图像被添加到我的S3桶中就好了,但是当我尝试渲染图片时<%= image_tag @user.photograph.url %>,它不会显示出来.经过进一步检查,图片网址为:

http://s3.amazonaws.com/my-bucket-name/users/photographs/000/000/001/original/20121103_132556.jpg?1388619625

如果我在浏览器中关注此URL,我会看到一个XML文件,如下所示:

<Error>
  <Code>PermanentRedirect</Code>
  <Message>
    The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.
  </Message>
  <RequestId> ... </RequestId>
  <Bucket>my-bucket-name</Bucket>
  <HostId>
    ...
  </HostId>
  <Endpoint>my-bucket-name.s3.amazonaws.com</Endpoint>
</Error>
Run Code Online (Sandbox Code Playgroud)

因此,当我http://my-bucket-name.s3.amazonaws.com/actives/photographs/000/000/001/original/20121103_132556.jpg?1388619625在浏览器中关注网址时,我看到图片就好了.

如何更改用户模型中的端点?处理这个问题的正常方法是什么?我必须补充一点,我的S3斗是北加州地区.谢谢.

ruby-on-rails amazon-s3 paperclip

14
推荐指数
1
解决办法
5459
查看次数

使用jq使用特定键boolean == true提取JSON数组中的值?

所以我有一个JSON blob如下:

[
  {
    'id': 'something',
    'isSparse': true
  },
  ...
]
Run Code Online (Sandbox Code Playgroud)

如何编写一个jq命令来过滤掉这个JSON blob并打印出数组中所有具有isSparse == true的条目的ID?

我尝试了以下方法:

cat <blob> | jq -c '.[] | select(.operational | contains("true"))'

但得到以下内容,因为显然true是布尔值而不是字符串:

jq: error: boolean and string cannot have their containment checked.

json jq

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

用Java检查字节数组中的各个位?

所以说我有一个字节数组,并且我有一个函数来检查字节数组的第n个最低有效位索引是1还是0.如果该位是1则返回true,如果该位则返回false字节数组的最低有效位定义为字节数组第0个索引中的最后一个有效位,字节数组的最高有效位定义为(字节数组中的最高有效位). length - 1)字节数组的索引.

例如,

byte[] myArray = new byte[2];
byte[0] = 0b01111111;
byte[1] = 0b00001010;
Run Code Online (Sandbox Code Playgroud)

呼叫:

myFunction(0) = true;
myFunction(1) = true;
myFunction(7) = false;
myFunction(8) = false;
myFunction(9) = true;
myFunction(10) = false;
myFunction(11) = true;
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

谢谢!

java bit-manipulation

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

使用 Google 的 ProtoBuf(和 .proto 文件)创建 Python API 库

我在开源 Android API (http://code.google.com/p/android-market-api/) 中使用了 .proto 文件,并且在编译文件以生成 .py 时遇到了一些问题。

我正在尝试按照此处的说明进行操作,https://developers.google.com/protocol-buffers/docs/pythontutorial,并且正在执行标题“编译您的协议缓冲区”下的步骤。

我已经下载了编译器 protoc.exe。自述文件说“要安装,只需将此二进制文件放在您的路径中的某个位置”,我不明白。我现在被它弄乱了一段时间,但想不出如何继续。

我是新手程序员,所以请告诉我是否有什么不清楚的地方,或者我是否有某种根本性的误解......关于任何事情。顺便说一下,我使用的是 Windows 7。

谢谢!

protocol-buffers

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

根据一些规范创建HashMap的子集?

所以我有以下HashMap:

HashMap<String, List<someDataType>> map;

我想创建一个新的HashMap,它只由k/v对组成,map其中有一个值(列表),其长度小于某个"x".我知道如何做到这一点的唯一方法是遍历HashMap并将k/v对放入新的HashMap中.有没有更简洁的方法来实现我正在寻找的东西?谢谢.

java hashmap

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

在JUnit中将"assertTrue"重写为"assertThat"?

List<String> list1 = getListOne();
List<String> list2 = getListTwo();
Run Code Online (Sandbox Code Playgroud)

鉴于上面的代码,我想使用JUnit assertThat()语句来声明它list1是空的还是list1包含的所有元素list2.在assertTrue这个相当于是:

assertTrue(list1.isEmpty() || list1.containsAll(list2)).

如何将此表述为assertThat声明?

谢谢.

junit hamcrest

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

使用 ActiveAdmin 编辑/创建用户 -- ForbiddenAttributesError

我在这里浏览了 Rails 教程:

http://ruby.railstutorial.org/ruby-on-rails-tutorial-book

我正在尝试让 ActiveAdmin 能够删除用户。通过教程,我的用户模型has_secure_password也有一个remember_token属性。因此,当我转到 ActiveAdmin 用户页面并尝试编辑用户时,要填写的字段为:用户名、电子邮件、密码摘要、记住令牌。

例如,当我修改名称字段并尝试提交编辑请求时,我会得到一个ActiveModel::ForbiddenAttributesError. 当我尝试创建用户时也会发生这种情况。我认为这显然与我的身份验证/密码设置有关,但对于 Rails 来说相当陌生,我不知道从哪里开始寻找。有任何想法吗?

编辑:我尝试将其添加到我的 app/admin/user.rb 文件中:

controller do
  def resource_params
    return [] if request.get?
    [ params.require(:active).permit(:name, :email, :password_digest, :remember_token) ]
  end
end
Run Code Online (Sandbox Code Playgroud)

我的堆栈跟踪中的这个错误消失了:

Unpermitted parameters: utf8, _method, authenticity_token, commit, id

现在,当我update在 ActiveAdmin 中点击时,我不再收到 ForbiddenAttributesError。相反,页面会重新加载,但更改未提交,并且我在终端中收到此消息:

 Started PATCH "/admin/users/59" for ...
 ...
 ...
 (0.1ms)  begin transaction
 User Exists (0.5ms)  SELECT 1 AS one FROM "users" WHERE (LOWER("users"."email") = LOWER('example-58@railstutorial.org') AND "users"."id" != 59) LIMIT …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails activeadmin

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