gpt4 book ai didi

programming-languages - 是否有任何面向对象的静态类型语言,其变量类型很少?

转载 作者:行者123 更新时间:2023-12-04 08:24:54 24 4
gpt4 key购买 nike

我喜欢阅读编程理论,所以你能告诉我是否有任何面向对象的静态类型语言允许变量有几种类型吗?
伪代码示例:

var value: BigInteger | Double | Nil

我想在这个对象上调用方法的方法。如果对象值的类型为 大整数 |双语言可以允许用户只调用共享方法(湖加,减),但当类型是 大整数 |双|无 那么 Nil 的对象没有加减方法,所以我们不能对这个对象做任何有用的事情,因为它只有很少的共享方法(比如 toString)。

那么有什么想法应该如何在静态类型的面向对象语言中调用具有少量类型的变量的方法?

最佳答案

您所描述的是 intersection type .他们做 exist in Java ,例如,但它们仅作为捕获转换和类型推断的结果出现在类型检查器中。你不能自己写一个。
我不知道有任何直接使用它们的语言,但它们通常用于描述或分析语言的类型系统,尤其是实际上没有类型系统的语言。例如,Diamondback Ruby 是动态类型 Rub​​y 编程语言的静态类型系统和类型推断器,它同时使用联合和交集类型。
请注意,您使用的语法通常用于表示联合类型,它们是交集类型的对偶。路口类型一般写成A & B & C .

关于programming-languages - 是否有任何面向对象的静态类型语言,其变量类型很少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3692693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com