例如,在 Ada 中是这样的(如果要支持的话):
type Type_Name is range bottom .. top;
其中“底部”和“顶部”是变量。
或 C 中的类似内容(如果要支持这一点):
struct s {
int a;
if (z<3) {
char b;
int c;
} else {
struct ss {
int b;
char c;
}
}
} v;
或者,如果 c 在声明中的变量标识符之后具有类型:
var if (z<3) int else char;
或类似的东西。
这只是出于好奇。我什至不知道它是否有用,而且我知道它会产生很多问题,比如s.ss.b
在使用之前必须检查类似的东西是否存在。
哦,也许我应该重申标题中的问题:是否有任何类型在运行时决定的静态类型语言?如果有,它们是什么?
顺便说一句,也许这意味着该语言不会是静态类型的。但我的意思是在使用前必须说明变量类型的语言(当然不能这样做)。