php,js,python,lua,c/c++,java语言中真假值判断
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2019-11-18 11:40:54
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
真真假假当你只学一门语言时好区分,但是等你学几种语言时就会发现居然都各不相同,搞混就很常见啦!
PHP
php7.2中的真假
https://www.php.net/manual/zh/types.comparisons.php
echo []?'true':'false';//false echo '0'?'true':'false';//false echo null?'true':'false';//false echo ''?'true':'false';//false echo ''==null?'true':'false';//true
当转换为 boolean 时,以下值被认为是 FALSE:
布尔值 FALSE 本身
整型值 0(零)
浮点型值 0.0(零)
空字符串,以及字符串 "0"
不包括任何元素的数组
特殊类型 NULL(包括尚未赋值的变量)
从没有任何标记(tags)的 XML 文档生成的 SimpleXML 对象
上面的值互相之间只有''==null 是相等的其它互相不等
JS
console.log(0 ? 'true' : 'false') // false console.log('' ? 'true' : 'false') // false console.log(null ? 'true' : 'false') // false console.log(undefined ? 'true' : 'false') // false console.log(NaN ? 'true' : 'false') // false console.log('0' ? 'true' : 'false') // true console.log({} ? 'true' : 'false') // true console.log([] ? 'true' : 'false') // true
Python
print('true' if 0 else 'false') # false print('true' if None else 'false') # false print('true' if '' else 'false') # false print('true' if () else 'false') # false print('true' if [] else 'false') # false print('true' if {} else 'false') # false print('true' if '0' else 'false') # true
Lua
print(nil and 'true' or 'false') --false print('' and 'true' or 'false') --true print('0' and 'true' or 'false') --true print(0 and 'true' or 'false') --true print({} and 'true' or 'false') --true
发现没有,lua中只有nil和false为假其它都是真,这个还挺不错的。
C/C++
这个语言可以说是所有语言的祖先啦,逻辑值比较接近底层,0为假非0为真,别看使用vs编程的时候那么多true false NULL null ,这些都是定义的宏,底层还是定义的0和1,并且c/c++里面全部都是指针,都是用NULL(0)来初始化的。
Java
java中的只有逻辑类型真假两种,如果你直接传非逻辑值给if语句会给你报错,因为java里面全都是对象,并且每种对象都有对应的判断是否为真的方法比较让人省心