作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试减少代码的长度,以便减少查看和调试的麻烦,我发现了这个奇怪的小事实:
Debug.Print 5<9<8 'returns "True"
一开始我以为这是因为它只检查了第一组,但后来我发现
Debug.Print 5<4<8 '*also* returns "True"
VBA 是否将这种三重不等式解释为 Or
陈述?我无法想象为什么有人会选择 VBA 所做的解释,因为它几乎肯定是较少使用的选项,但我很难想到另一种解释。
还有,什么是快速又漂亮的写作方式If 5 < X < 8 Then
(使用样本编号),而不必求助于无休止的 And
语句,即If 5 < x And X < 8 Then
?对于一个语句来说是可以的,但是长度加倍会很快,特别是因为变量通常不命名为 X
。
编辑:好吧,这肯定不是 Or
因为VBA也说Debug.Print 8<6<2
是 True
。它到底在想什么?
最佳答案
我不知道,但我有根据的猜测是,它首先评估方程的左侧 (5<9),给出 TRUE。然后,它继续评估其余部分 (TRUE<8) 并隐式将 TRUE 转换为其整数值(我相信在 VB 中该值为 -1)。
-1<8 -> 正确
也适用于第二种情况,因为 FALSE 将转换为 0 和 0<8。
基本上,它与 bool 值到整数的隐式转换及其在 VBA 中各自的值有关。
关于VBA 关于双边不平等的政策?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43746626/
在平滑图像时,我应该应用高斯和双边滤波器等哪种颜色空间版本(灰度、RGB、HSV 等)以获得最佳的去噪效果?是有一个总体趋势,还是在不同情况下会发生变化? 此外,您建议在图像处理中使用什么滤镜和色彩空
我是一名优秀的程序员,十分优秀!