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

问题描述

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

(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 (将#修改为@)