Types reasonml-数组或元组列表

Types reasonml-数组或元组列表,types,ocaml,reason,Types,Ocaml,Reason,我有元组类型foo=string,string 如何创建foo元组的类型数组 如果使用元组数组或元组列表,有什么区别 如何访问元组值数组? JS模拟: const foo1 = [1, 2]; const foo2 = [3, 4]; const arrayOfFoo =[foo1, foo2]; console.log(arrayOfFoo[0][0]) // 1 console.log(arrayOfFoo[1][1]) // 4 更新:我发现了优秀的gitbook 这是正确的吗?还有更

我有元组类型foo=string,string

如何创建foo元组的类型数组

如果使用元组数组或元组列表,有什么区别

如何访问元组值数组? JS模拟:

const foo1 = [1, 2];
const foo2 = [3, 4];
const arrayOfFoo =[foo1, foo2];

console.log(arrayOfFoo[0][0]) // 1
console.log(arrayOfFoo[1][1]) // 4
更新:我发现了优秀的gitbook

这是正确的吗?还有更有用的方法吗

设x:list int,int=[1,2,3,4]/*等*/ 二,

数组长度固定且可变,并提供轻松的随机访问。它非常类似于JavaScript列表。对于需要随机访问读/写而不是追加/弹出的东西,可以使用它。 列表是一个单独链接的列表&是不可变的。来自功能性传统的人们会很熟悉它。在访问第一个元素或从前面推/弹出比随机访问更常见的情况下使用它。 实际上,我几乎所有的东西都使用列表,但在一些性能密集型的情况下使用数组

三,

从列表中获取第一件事情是非常常见的。通常,你想先做第一件事,然后再做列表中的其他事情。为了更彻底,您还需要处理列表为空的情况。下面是它的样子:

switch (somelist) {
  | [] => Js.log "nothing there" /* what we do if the list is empty */
  | [firstItem, ...rest] => Js.log firstItem /* we have things! */
}
如果您只想获取第一个项目,并且如果该项目恰好为空,您的程序将崩溃,那么您可以执行List.hd mylist

从元组中获取项就像你把a,b=sometuple。如果你只关心第一个,你可以让a,=sometuple是一个特殊的占位符,这意味着我不关心这是什么。对于长度为2的元组,有特殊的帮助函数fst和snd,它们为您获取第一项和第二项

设x:list int,int=[1,2,3,4]/*等*/ 二,

数组长度固定且可变,并提供轻松的随机访问。它非常类似于JavaScript列表。对于需要随机访问读/写而不是追加/弹出的东西,可以使用它。 列表是一个单独链接的列表&是不可变的。来自功能性传统的人们会很熟悉它。在访问第一个元素或从前面推/弹出比随机访问更常见的情况下使用它。 实际上,我几乎所有的东西都使用列表,但在一些性能密集型的情况下使用数组

三,

从列表中获取第一件事情是非常常见的。通常,你想先做第一件事,然后再做列表中的其他事情。为了更彻底,您还需要处理列表为空的情况。下面是它的样子:

switch (somelist) {
  | [] => Js.log "nothing there" /* what we do if the list is empty */
  | [firstItem, ...rest] => Js.log firstItem /* we have things! */
}
如果您只想获取第一个项目,并且如果该项目恰好为空,您的程序将崩溃,那么您可以执行List.hd mylist

从元组中获取项就像你把a,b=sometuple。如果你只关心第一个,你可以让a,=sometuple是一个特殊的占位符,这意味着我不关心这是什么。对于长度为2的元组,有特殊的帮助函数fst和snd,它们为您获取第一项和第二项