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