微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用类型推断将元组解包为静态类型语言中的新变量和现有变量

如何解决使用类型推断将元组解包为静态类型语言中的新变量和现有变量

考虑一个整数、浮点数、字符串类型的元组

(int,float,string) x = (2,4.2,"string")

元组中解压值可以通过类型推断或预定义类型来实现。

(int,string) (arg1,arg2,arg3) = x
//or
(arg4,arg5,arg6) = x

问题在于,通过包含类型修饰符,它告诉编译器元组提取中的所有变量都是新的,因此必须使用相应的类型进行声明。但是,如果程序员想要在元组提取中组合现有变量和新变量,这意味着他们不能再使用类型修饰符,因为这会向编译器暗示他们正在创建新变量。但是如果不使用类型修饰符,类型推断会给程序员一个他们可能不一定想要的类型。例如:

int arg1 = 0
(int,arg3) = x //ERROR: arg1 already declared

(arg1,arg6) = x //Fine: but doesn't allow the programmer to explicitly declare the types they want

是否有任何编程语言在元组解包中存在这种冲突问题,如果有,他们如何解决

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。