R语言中str("Hello")==str("World!")输出异常的原因咨询
为什么
str("Hello") == str("World!")会得到那样的输出? 首先得搞懂
str()的真实作用:它是用来在控制台打印对象的结构信息的,不是用来返回这个信息的。你执行str("Hello")时看到的chr "Hello"是它打印到控制台的内容,而这个函数本身的返回值是NULL——你可以试试res <- str("Hello"),然后打印res,会看到结果是NULL。你的代码
str("Hello") == str("World!")实际执行流程是这样的:- 先运行
str("Hello"),控制台打印chr "Hello",函数返回NULL - 再运行
str("World!"),控制台打印chr "World!",函数返回NULL - 最后做比较
NULL == NULL,在R里这个表达式的结果是logical(0)(长度为0的逻辑向量),这就是你看到的最后那个输出。
- 先运行
如果你想判断两个字符串的类型是否一致,别用
str(),直接用typeof()或者class()来获取类型后比较:typeof("Hello") == typeof("World!") # 返回 TRUE class("Hello") == class("World!") # 返回 TRUE
内容的提问来源于stack exchange,提问作者GimenezEGT
相关产品推荐
相关产品推荐

