中的is、==和cmp(),比较字符串
平常写shell脚本就清楚, 用于字符串判断的是=而非其他, 用于数字判断的是-eq等而非别种, 然而事实确实并非如此这般。
所以要逐渐往用到写脚本去转变, 这些基本玩意儿得彻彻底底掌握在骨子里!
在 中比较字符串最好是使用简单逻辑操作符。
例如, 去判定一下一个字符串是不是跟另外的一个字符串相匹配。没错的, 你能够采用is equal或者==操作符进行此操作。你还能够通过使用类似于>=或者<这种方式, 来判断几个字符串之间的排列顺序。
从官方文档上看
即是说, is 被用以判断是不是同一个对象, is 属于一种颇为特殊的语法, 你于其他语言当中想必不会见到如此这般的用法。
2个变量是否引用同一个对象, 主要靠is判断, 若引用同一个对象, 就返回true, 否则返回false。
判断数字相等不要用 is 操作符
凭什么两次is返回的是不一样的结果呀? 难道不应该两次都是true吗?
话说, 由于(抑或称作)。is 相等意味着两个对象的 id 是同样的情况(要是从底层角度去看的话, 能够视为引用同一块内存空间区域)。那么, 要问为何"ABC" 被 了然而"a bc" 却没有, 这是 解析器给搞出来具体情况决定的, 而且很有可能会发生变化。
与Java不一样, Java当中的==是用来判定是否为同一个对象, 而这里的==是用以判断两个对象的值是不是相等。标点(。)。
今天我用 == 来判断两个 IP 地址 字符串是否相同。
#if == :
来个简单点的例子:
在 if 判断语句中非常有用呐!
打印, 那个, 你, 它。# 新的块儿, 在这儿。
# 你能够去做, 你所想做的, 在一个街区之中……
这段最后的内容, 是在那个如果的情况之后存在的, 是这样的 , 是这样的。
所谓cmp()函数, 那是有着相当的作用, 然而, 存在于特定语境当中, cmp()函数已经被去除掉了, 如此所以, 往后我还是尽量不去或少使用这个函数好了。
注意:
看得出来, 内容一样的字符串, 事实上是同一个对象, 在Java里, 直接赋值的字符串, 也能够用 == 去判断, 然而, 使用new实例化的对象, 却得使用.(s) 来判定。