一些编程语言提供隐式转换和强制转换,方便不同类型赋值,另外一些编程语言不允许不同类型赋值以避免未知的问题。Python/JS属于脚本, 弱类型,讨论先抛开它们。
为了方便描述不同编程语言支持情况,定义ALL语言为:
- C/ObjC/C++/Java/C#/VB/Go/Rust/Swift/仓颉
转换规则
| 规则/支持与否 | 支持 | 不支持 |
| 小整型可以隐式赋值成大整型 | C/ObjC/C++ | |
| 大整型赋值成小整型自动截断 | C/ObjC/C++ | C# (需显式转换) |
| 不同精度浮点数可以隐式转换 | C/ObjC/C++/VB | C# (需显式转换) |
| 字符串赋值给整型 | VB (必须字符串包含整型字符) |
