[英]OCaml : How to get a parameter from a type?
这真的很简单,但我找不到任何答案。
假设我创建了一个新type student = string * int
,它是一个学生的名字和他在测试中的分数的元组。
然后将学生列表传递给函数,我必须找到班级的平均分数(或列表)。
let blah (class : student list) : float =
match class with
[] -> []
| hd :: tl -> hd ??????
因此,我开始进行标准模式匹配,得到列表中的一个元素(又名学生),但是我如何准确地提取测试分数呢? 我觉得这确实很明显而且很基础,但是我以前只用int,字符串,int列表,int列表列表等进行编码。其中hd是您想要的特定信息。
您只需要一个更复杂的模式:
match class with
| [] -> ...
| (name, score) :: tl -> ...
在某些情况下,您可以使用fst
和snd
来获取一对组件,但根据我的经验,匹配通常可以为您提供简洁的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.