F#是否提供习惯用法来连接:
- 序列和列表一起?
- 将列表和列表一起非破坏性地放入列表中?
- 如果是破坏性的,可以将列表和列表放在一起成为另一个列表吗?
- 可变数组在一起,具有破坏性地放入另一个可变数组中?
并且您也可以连接元组吗?
F#是否提供习惯用法来连接:
并且您也可以连接元组吗?
将序列和列表合并在一起
没有专门的函数可以实现此操作。如果序列是第一个,而列表是第二个,则必须在将第一个转换为列表(然后使用 List.append
进行附加时进行复制)或者使用 Seq.append
然后跟随 List.ofSeq
进行复制两个列表之间做出选择。
因此编写自己的函数是有道理的。
将列表和列表合并为列表?(非破坏性)
List.append
可以实现这个功能。
如果它是破坏性的,如何将列表和列表合并成一个列表
列表是不可变的,所以没有破坏性附加。
将可变数组彼此破坏性地合并为另一个可变数组?
在.NET中,您无法调整数组大小,因此不存在破坏性的方法。 Array.append
创建一个新数组(会更快,因为它预先知道结果的大小)。
还可以连接元组吗?
不行。类型系统不允许您表达将元组附加到一起的函数的类型(它们必须具有静态已知的大小)。
@
运算符,我认为它与 List.append
完全相同。 - YotaXP@运算符是连接多个列表的一种简单而整洁的方法:
let allElements = list1 @ list2 @ list3 @ list4 @ list5 @ list6