例如,如果我创建一个新类型
type map = int * string;
val a = (1,"a") : int * string;
然后我想从变量a得到内部的“a”字符串,我怎么能得到它? 我尝试了[1],[2],a(2)并且它们不起作用......
答案 0 :(得分:3)
您可以使用#n
运算符来获取任何元组的n
个元素。在REPL:
- #1("one", "two");
val it = "one" : string
- #2("one", "two");
val it = "two" : string
答案 1 :(得分:2)
由于新类型只是一个两元组,您可以使用模式匹配,就像使用其他类型一样:
- val a = (1, "a");
val a = (1,"a") : int * string
- case a of (_, str) => str;
val it = "a" : string
- (fn (_, str) => str) a;
val it = "a" : string
如果这成为常见操作,您可以考虑使用效用函数:
fun unpackStr (_, str) = str;