我在一个开始从事的项目中遇到了这段代码。原始开发人员不再可用,我对此一无所知:
k = (j = (i = 0) + 2) + 1;
return i|= j|= k|= (j+= i) - - (k+++k) - - (i =+j);
产生值为11
。这是如何运作的?
=+
运算符?+++
运算符?- -
运算符?|=
运算符?什么是
=+
运算符?
那是两个运算符,一个是赋值运算符,=
一个是一元加号+
,它什么都不做。
您是否输入错了并表示compund赋值运算符+=
?
什么是
+++
运算符?
还有两个运算符,一个为后递增,++
一个为加法+
(根据最大划分规则,选择了最长的有效令牌,如果选择了最短的有效令牌,它将成为一个加法和两个一元加法)。
什么是
- -
运算符?
再一次是两个运算符,一个减法,一个一元负数(负)。
什么是
|=
运算符?
一个复合赋值,boolean
对左侧的值与右侧的值进行按位或[如果是值,则对它们进行逻辑或],并将其存储在左侧的变量中。
a |= b;
几乎等于
a = a | b;
但是左侧操作数仅计算一次,而后者可能需要显式转换,而前者则不需要。
k = (j = (i = 0) + 2) + 1;
return i|= j|= k|= (j+= i) - - (k+++k) - - (i =+j);
它的值为11。这是如何工作的?
第一行相当于
i = 0;
j = i+2;
k = j+1;
赋值(i = 0
例如)计算为存储的值(在i
此)。
下一行是,具有适当的间距,并添加了隐式括号
return i |= (j |= (k |= (((j += i) - (-(k++ + k))) - (-(i = +j)))));
i |= stuff_1
:i
被评估(0),stuff_1
被评估,按位或被取,结果存储在中i
。由于i
本来是0,所以等效于i = stuff_1
。
j |= stuff_2
:j
对(2)stuff_2
求值,按位或求值,并将结果存储在中j
。
k |= stuff_3
:k
被评估(3),然后stuff_3
从左到右。
(j += i)
添加i
到j
,将和存储在中j
并返回j
的新值。由于i
为0,因此j
不会更改,值为2。(k++ + k)
接受k
(3)的旧值,增加k
并加上k
新的值(4),得到7。该值被取反,并且从2中减去该取反的值(-7),得到2 - (-7) = 9
。(i = +j)
将j
(2)的值存储在中,i
并且表达式的值也为2。该值被取反(-2)并从先前操作中得到的9中减去,因此stuff_3
求值为11,其副作用是
i
现在的存储值为2
j
现在为2(实际上没有更改,因为i
最初为0)k
现在的存储值为4k
(3)的旧值按11进行位或运算,得到11,该值存储在中k
,而11是的值stuff_2
,即k |= stuff_3
。j
(2)的旧值按位或与stuff_2
(11)的值相加,结果为11。该值存储在中j
,stuff_1
(j |= stuff_2
)的值为11。i
(0)的旧值按位或与stuff_1
(11)i
的值相加,结果在中排序,然后值为i |= stuff_1
11。然后返回该值。
问题内容: 在声明数组时,我们可以在标识符的任何一侧使用方括号,但在以下情况下: 和 将以两种不同的方式来考虑它。那是第一个创建两个数组k和i。第二个创建一个数组k和一个普通变量i。这是什么行为? 编辑: 在Java中,通常我们更喜欢第一类声明。但是在这种情况下,我们无法在单个语句中创建数组和原始变量。 问题答案: 我的 猜测 如下: 该声明更具逻辑性,因为它声明为的 数组。因此,它是Java中的
给我一个大小为n的正整数数组。对于数组中的每个索引I,我想找到最大的索引j,使得从索引I到j的数组元素之和小于或等于某个整数K。我只能用蛮力O(n^2)的方式来思考。我想知道是否有更有效的方法?
我有一个s的矩阵,名为,当我按列而不是按行迭代它时,它的运行速度会慢50毫秒: 有人知道为什么会这样吗?我问过几个人,但他们都不知道为什么。我肯定这与地址在计算机内存中的表现方式有关,但我还是想找到一个更具体的答案。
我在这里读这篇社论:https://www.geeksforgeeks.org/given-an-array-arr-find-the-maximum-j-i-such-that-arrj-arri/我无法理解O(n)解是如何工作的。描述它的段落似乎与准则相矛盾。我已经查看了一个示例阵列,手动确保这似乎是可行的,但对我来说,这似乎一点都不直观。 如果有人在解决编程难题方面更有经验,他会愿意解释这是
问题内容: 在Scrapy docs中,有以下示例说明如何在Scrapy中使用经过身份验证的会话: 我已经做好了,很好。但是 我的问题是 :正如他们在最后一行的评论中所说,您需要做什么? 问题答案: 在上面的代码中,用于进行身份验证的将该函数设置为其回调。这意味着该函数将被调用并传递登录尝试得到的页面作为响应。 然后,通过在页面中搜索特定的字符串(在本例中为)来检查您是否成功登录。如果找到它,蜘蛛