小编evu*_*uez的帖子

实例变量:self vs @

这是一些代码:

class Person
  def initialize(age)
    @age = age
  end

  def age
    @age
  end

  def age_difference_with(other_person)
    (self.age - other_person.age).abs
  end

  protected :age
end
Run Code Online (Sandbox Code Playgroud)

我想知道的是两者的区别@age,并self.ageage_difference_with方法.

ruby instance-variables self

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

PUT的HTTP状态代码

一个PUT请求,可以有很多的成果,我想知道它的状态代码将是最适合他们每个人.

假设我想创建一个新资源,所以我做了类似的事情:

PUT http://example.com/resources/resource-1
Run Code Online (Sandbox Code Playgroud)

我会得到一个HTTP 201因为已经创建了一个新资源.

现在我想更新这个资源,所以我做了同样的请求,新的内容:

PUT http://example.com/resources/resource-1
Run Code Online (Sandbox Code Playgroud)

我得到HTTP 200或者HTTP 204,因为资源已经更新.但是,如果我再次使用相同的内容发送此请求怎么办?服务器应该返回HTTP 200还是HTTP 204什么都没有更新?

我知道,HTTP 200HTTP 204双方只是意味着该请求被成功处理,即使数据不改变请求可以(也应该)仍然可以成功处理.但有没有办法告诉客户端请求已成功处理但服务器端没有任何变化?如果有,是否应该用于PUT请求?PUT如果是幂等的,应该根据服务器端的实际处理返回不同的状态(只要在此处理过程中没有发生错误)?

rest http

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

WebSocket SyntaxError:指定了无效或非法字符串

我正在SyntaxError: An invalid or illegal string was specified尝试连接到Firefox上的WebSocket.

<!doctype html>
<html>
  <head><meta charset="utf-8"></head>
  <body>
    <script>
    var socket = new WebSocket('127.0.0.1:1234');
    </script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此错误?

javascript firefox websocket

11
推荐指数
1
解决办法
8156
查看次数

Python将对象列表序列化为JSON

我正在尝试序列化到__dict__一个对象的JSON ,它正常工作,直到我将对象追加到我的第一个对象的一个​​实例属性:

from json import dumps

class A(object):
    def __init__(self):
        self.b_list = []

class B(object):
    def __init__(self):
        self.x = 'X'
        self.y = 'Y'
    def __repr__(self):
        return dumps(self.__dict__)

a = A()

print dumps(a.__dict__)  # works fine

a.b_list.append(B())

print dumps(a.__dict__)
Run Code Online (Sandbox Code Playgroud)

第二次打电话时dumps,我得到以下信息TypeError:

TypeError: {"y": "Y", "x": "X"} is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我一直得到这个错误,而我不明白为什么这不能序列化为JSON.

python json

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

块的 C 语法背后的基本原理

我最近试图找出导致C 语言和同族其他语言中块(复合语句)使用大括号的原因。

认为像数组的方括号或括号来改变运算符优先级似乎来自用于这些事物的数学 符号,所以这对我来说是有意义的。分号也很有意义,它的作用是将相关的句子与独立的子句分开,它的作用与 C 中的类似。

但我找不到与花括号类似的东西:它们用于数学中的集合,并且在某种程度上相似的是它们在乐谱合奏五线谱)中的使用,其中它们用于指示所有五线谱上的音乐是同时播放(不完全相同的用法,但我认为它比它们在数学中的集合更接近)。

另外,我想知道 C 是否实际上是第一个引入这种块语法的语言,或者它只是普及了它?

c syntax curly-braces notation

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

Rails + Carrierwave + RMagick:仅在图像很大时裁剪

我正在使用载波来上传图像.在上传时,我正在为图像创建缩略图,这是使用Rmagick方法完成的,resize_to_fill如下所示.

version :thumb do
    process :resize_to_fill=> [150, 150]
end
Run Code Online (Sandbox Code Playgroud)

这是所有RMagick方法的输出载波wavewave 支持(我不想要):

  1. :resize_to_fill => [150,150]

这适用于较大的图像,但我的较小图像放大到150 x 150. :resize_to_fill => [150,150]

  1. :resize_to_fit => [150,150]

它再次调整大小,我希望它独自留下!

:resize_to_fit => [150,150]

  1. :resize_to_limit => [150,150]

这个按原样保留,但不会裁剪较大的图像.它们的大小调整以保持纵横比.

在此输入图像描述

在此输入图像描述

这是我想要的结果以及我的小图像和大图像的外观.

在此输入图像描述 在此输入图像描述

这是怎么回事?我想要将较小的图像单独留下并仅将较大的图像裁剪为150 x 150.是否有其他方法或选项可以传递给resize_to_fill?

ruby rmagick carrierwave

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

结构字段中的Rng的Vec,不能将不可变字段作为可变字段借用

我想创建一个struct包含a的字段Vec<ThreadRng>.

所以这很好用,我有一个存储在Foo.generators以下位置的生成器列表:

extern crate rand;

use std::vec::Vec;
use rand::{Rng, ThreadRng};

struct Foo {
    generators: Vec<ThreadRng>,
}

impl Foo {
    fn new() -> Foo {
        Foo { generators: vec![rand::thread_rng(), rand::thread_rng()]}
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想用它,比如说bar:

impl Foo {
    fn bar(&self) -> i32 {
        self.generators[0].gen::<i32>()
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不能,而且我得到了cannot borrow immutable field 'self.generators' as mutable.

据我所知,我不能使用gen方法,ThreadRng因为它需要对RNG(gen<T: Rand>(&mut self))的可变引用,并且由于我的字段Foo.generators" Vec<ThreadRng>" 的定义没有指定ThreadRng应该是可变的,我不能对它做任何需要可变性的事情.

第一个问题:我对正在发生的事情的理解是正确的,还是我完全错了?如果是这样,有人可以向我解释实际发生了什么吗?

第二个问题:承认我的理解是正确的,我怎么能允许我ThreadRng的行为需要可变性? …

rust

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

从右到左展开元素

我想让li元素从右向左扩展.我的意思是,如果我的元素有以下css:

li{
   position:absolute
   left:10%;
   top:40px;
   width:100px;
}
Run Code Online (Sandbox Code Playgroud)

如何让这个元素顶部用jquery向左展开,这样它的右上角就不会移动了,它的左边框会移动吗?

现在,我只有以下jquery,做同样的事情......从左到右:

$('li').animate({width:'+=100'},400);
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助!

html css jquery

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