赞
踩
//示例元组
my_tuple = (2010, 10, 2, 11, 4, 0, 2, 41, 0)
//组元解包为单独的变量
year, month, day, hour, minute, second, _, _, _ = my_tuple
print(f"Year: {year}, Month: {month}, Day: {day}")
print(f"Time: {hour}:{minute}:{second}")
简单D代码:
module tupleUnpack2;
import std.stdio;
import std.typecons : tuple;
void main() {
auto fruits = tuple("apple", "banana", "cherry");
writeln(fruits[0]); //`"apple"
writeln(fruits[1]); //"banana"
writeln(fruits[2]); //"cherry"`
auto (a, b, c) = fruits; //想它这么简单(类似`C#`的语法)
//或
auto(a, b ,c) = fruits.expand;
}
我一直在使用AliasSeq
(并别名
它为"put"
以方便使用):
import std.meta;
alias put = AliasSeq;
auto foo() { return tuple(1, 2, 3); }
int main(string[] args) {
int x, y, z;
put!(x, y, z) = foo();
writeln(x, y, z);
return 0;
}
助记符:"put"
是"tup"
的倒装,并撤消
了元组
作用.
仍未提出直接实现
.但是还有其他方法
有类似
功能,如AliasSeq
示例.
在这
些帖子中,可找到其他"方法"
,元组DIP
描述和其他
有用的想法.
谢谢谢尔盖!仍在阅读不同的"方法"
–信息量
很大.
非常聪明的助记符TTKCiar
!:)在查看了各种方法之后,我似乎喜欢
基于你提出的方法,好吧,至少现在在实现直接实现之前是这样(期望!非常感谢大家的帮助!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。