小编Kyl*_*ner的帖子

为什么`false && true || 真的`评价为真吗?

根据MDN Logical Operators页面:

false &&任何短路评估为假.

鉴于此信息,我希望false && true || true评估为假.然而,这种情况并非如此.false只有在语句写成时才会给出预期的结果():

false && (true || true)
Run Code Online (Sandbox Code Playgroud)

一位同事和我试图解决这个问题,我们可以提出的最接近的事情就是按照优先顺序评估该声明.根据MDN运算符优先级 logical-and在具有较高precidence logical-or,表明仿佛评估条件false && true是一个单一语句,它然后移动到确定的布尔条件的false || true,然后将其true.写出来,这将是:

(false && true) || true
Run Code Online (Sandbox Code Playgroud)

这里不对劲.它是文档,JavaScript解析逻辑或我的解释.

编辑:

我添加了赏金,因为没有给出的答案真正理解这个问题.如上所述:MDN Logical Operators页面准确说明:"false &&将任何短路评估为false."

"任何事物"都意味着"任何事情"

javascript logic short-circuiting

4
推荐指数
3
解决办法
3379
查看次数

如何使<hr />标签垂直移动

如何使<hr />标签垂直移动,而不是标准外观作为水平线/横向移动?

我希望能够在移动网站上使用它,因此更广泛支持的解决方案比仅适用于最新浏览器的解决方案更可取.

html javascript css

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

django session_key 在每次 ajax 调用中都不同

我有一个 django 应用程序,我只能通过 AJAX 访问它。我的主要问题是我想获得一个与发出请求的特定浏览器实例配对的唯一 ID。

为了尝试这样做,我正在尝试访问session_keydjango 创建的None.

这是我在 Django 中创建 JSON 响应的方法:

def get(self, request, pk, format=None):
    resp_obj = {}
    ...
    resp_obj['csrftoken'] = csrftoken
    # shouldn't need the next two lines, but request.session.session_key is None sometimes
    if not request.session.exists(request.session.session_key):
        request.session.create()
    resp_obj['sessionid'] = request.session.session_key
    return JSONResponse(resp_obj)
Run Code Online (Sandbox Code Playgroud)

当我使用 Postman 发出请求时,session_keyJSON 正文和 cookie 中都通过了请求,但是当我在浏览器中通过 jquery 发出请求时request.session.session_key,它是 None,这就是我添加这些行的原因:

if not request.session.exists(request.session.session_key):
    request.session.create()
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,session_key每次都不一样。

这是我如何进行 AJAX 调用:

if not request.session.exists(request.session.session_key):
    request.session.create()
Run Code Online (Sandbox Code Playgroud)

Django 文档说会话并不总是被创建:

默认情况下,Django …

django ajax jquery django-sessions

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

如何使用 Mockito 模拟 DisplayMetrics

我有一个自定义视图,我正在尝试针对不同的屏幕尺寸进行测试,但我无法找到有关如何在单元测试中正确模拟显示宽度的文档或示例。

这是我如何尝试使用它的示例:

private CustomTextView customTV;

@Override
protected void setUp() throws Exception {
    super.setUp();

    DisplayMetrics displayMetrics = mock(DisplayMetrics.class);
    displayMetrics.widthPixels = 600;

    Resources mockResources = mock(Resources.class);
    when(mockResources.getDisplayMetrics()).thenReturn(displayMetrics);

    Context mockContext = mock(Context.class);
    when(mockContext.getResources()).thenReturn(mockResources);

    customTV = new CustomTextView(mockContext);
}

@SmallTest
public void testViewSize() {
    Assert.assertEquals("Text size did not scale", 42, customTV.getTextSize());
}
Run Code Online (Sandbox Code Playgroud)

此外,我仅在某些设备上遇到错误(上述实现适用于某些屏幕尺寸,但不是全部):

Error in testViewSize:
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.content.res.Configuration.isLayoutSizeAtLeast(int)' on a null object reference
    at android.view.ViewConfiguration.<init>(ViewConfiguration.java:284)
    at android.view.ViewConfiguration.get(ViewConfiguration.java:364)
    at android.view.View.<init>(View.java:3781)
    at android.view.View.<init>(View.java:3876)
    at android.widget.TextView.<init>(TextView.java:655)
    at android.widget.TextView.<init>(TextView.java:650)
    at android.widget.TextView.<init>(TextView.java:646)
    at …
Run Code Online (Sandbox Code Playgroud)

android unit-testing mockito

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

将文件上传到Box.net

我正在尝试使用rest api将文件上传到box.net.但我每次都会收到404错误.这里请求标题(来自fiddler).我犯错的地方?

 POST https://api.box.com/2.0/files/content HTTP/1.1
 Authorization: BoxAuth api_key={key}&auth_token={tokem}
 Content-Type: multipart/form-data; boundary="13afaf22-f210-464b-bcc3-3cd3e4ed1617"
 Host: api.box.com
 Content-Length: 166
 Expect: 100-continue

 --13afaf22-f210-464b-bcc3-3cd3e4ed1617
 Content-Disposition: form-data; filename=test.zip; folder_id=0
 {empty line - I don't know why it here} 
 {bytes starting here}
 --13afaf22-f210-464b-bcc3-3cd3e4ed1617--
Run Code Online (Sandbox Code Playgroud)

注意我正在使用c#,其HttpClient类和MultiPartFormDataContent作为内容源.

解决了:

问题解决了.请求标头和正文应如下所示:

POST https://api.box.com/2.0/files/content HTTP/1.1
Authorization: BoxAuth api_key={key}&auth_token={token}
Content-Type: multipart/form-data; boundary="d174f29b-6def-47db-8519-3da38b21b398"
Host: api.box.com
Content-Length: 314
Expect: 100-continue

--d174f29b-6def-47db-8519-3da38b21b398
Content-Disposition: form-data; filename="hello.txt"; name="filename"
Content-Type: application/octet-stream

{Bytes}
--d174f29b-6def-47db-8519-3da38b21b398
Content-Disposition: form-data; name="folder_id"

0 
--d174f29b-6def-47db-8519-3da38b21b398--
Run Code Online (Sandbox Code Playgroud)

谢谢

c# box-api

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

将元组列表转换为字典并保留重复项

我试图将我的元组列表转换为一个包含该位置值的字典,并加入一个列表。dict做我想要的,除了它删除重复项,这是我不想要的!

这是发生的事情:

>>> vals
[(5, u'3'), (5, u'3'), (8, u'1'), (8, u'1')]
>>> dict(vals)
{8: u'1', 5: u'3'}
Run Code Online (Sandbox Code Playgroud)

这就是我想要发生的事情

>>> vals
[(5, u'3'), (5, u'3'), (8, u'1'), (8, u'1')]
>>> foo(vals)
{8: [u'1',u'1'], 5: [u'3',u'3']}
Run Code Online (Sandbox Code Playgroud)

是否有其他一些python函数(foo在上述情况下)可以做到这一点?

python dictionary

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

如果声明比较字符串

我已经完成了一项将Celcius转换为Fahrenheit的程序,反之亦然,这是典型的初学者.

但是,即使条件不满足,我的if语句总是会激活,我几乎肯定我有正确的语法!=因为它与字符串有关,但程序仍会打印if语句的打印行,无论我输入什么.

import java.util.Scanner;

    public class TemperatureConverter {

    public static void main(String[] args) {

      double temp = 0.0;

      Scanner in = new Scanner(System.in);

      System.out.printf("Please enter the type of temperature conversion you need to perform: ");
      String type = in.nextLine();

      if (!type.equals("F") || !type.equals("f") || !type.equals("C") || !type.equals("c")){
                System.out.println("Invalid conversion, must supply either C or F, program will exit");
                System.exit(0); }

        switch (type) {
            case "F":
                System.out.printf("\nPlease enter the temperature to be converted to Celsius: ");
                temp = in.nextDouble();
                double fToC …
Run Code Online (Sandbox Code Playgroud)

java

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

PostgreSQL unable to parse string to date using to_date()

我有一个非常标准的日期作为字符串,我需要将其解析为日期类型:

"2016-06-01T23:34:25+00:00"
Run Code Online (Sandbox Code Playgroud)

我正在使用'YYYY-MM-DDTHH24:MI:SS'格式掩码和此查询来尝试获取和解析日期:

SELECT to_date('last_updated_on', 'YYYY-MM-DDTHH24:MI:SS') 
AS last_updated_on FROM locations 
limit 1
Run Code Online (Sandbox Code Playgroud)

发生什么情况,我收到此错误:

ERROR: invalid value ":2" for "MI"
SQL state: 22007
Detail: Value must be an integer.
Run Code Online (Sandbox Code Playgroud)

我在文档和SO中四处寻找,试图找出为什么会发生这种情况,而我对此感到困惑。

我正在使用PostgreSQL 9.4

sql postgresql

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

如何为包含32位的位字段分配32位无符号整数

我试图创建一个具有32位总位数的位域结构,但是当我尝试为其分配32位数字时,出现此错误:

从'unsigned int'到位字段的隐式截断将值从4278190080更改为0

这是我的结构以及如何使用它

struct Color32 {
    uint32_t a : 8;
    uint32_t r : 8;
    uint32_t g : 8;
    uint32_t b : 8;
};


Color32 BLACK = {0xFF000000}; // this line has the compilation error
Run Code Online (Sandbox Code Playgroud)

我看到了有关位字段分配的其他问题,但它们似乎都使用按位运算来设置各个字段。

还有一个具有以下示例的参考,似乎与我使用它的方式相同,只有我自己不会编译:

#include <iostream>
struct S {
 // three-bit unsigned field,
 // allowed values are 0...7
 unsigned int b : 3;
};
int main()
{
    S s = {6};
    ++s.b; // store the value 7 in the bit field …
Run Code Online (Sandbox Code Playgroud)

c++ bit-fields

-2
推荐指数
2
解决办法
175
查看次数