gpt4 book ai didi

f# - 在 F# 中实现索引器

转载 作者:行者123 更新时间:2023-12-02 20:10:11 27 4
gpt4 key购买 nike

我正在尝试将此 C# 代码转换为 F#:

double[,] matrix;

public Matrix(int rows, int cols)
{
this.matrix = new double[rows, cols];
}

public double this[int row, int col]
{
get
{
return this.matrix[row, col];
}
set
{
this.matrix[row, col] = value;
}
}

基本上,我最大的问题是在 F# 中创建索引器。我在网络上找不到任何可以应用于这种情况的内容。我包含了该类的几个其他部分,以防将索引器合并到矩阵类型中并不明显。因此,一个好的答案将包括如何从这里的三部分中制作一个完整的类型,以及可能需要的任何其他内容。另外,我知道 F# powerpack 中的矩阵类型,但我正在尝试通过将我理解的 C# 项目转换为 F# 来学习 F#。

提前致谢,

鲍勃

最佳答案

F# 称它们为“索引属性”; here is the MSDN page.在 F# 中,它们的工作方式略有不同 - 每个索引属性都有一个名称。

但是,有一个名为“Item”的默认值。因此,您的示例的实现如下所示:

member this.Item
with get(x,y) = matrix.[(x,y)]
and set(x,y) value = matrix.[(x,y)] <- value

然后通过instance.[0,0]访问它。如果您将其命名为“Item”以外的名称,则可以使用 instance.Something[0,0] 访问它。

关于f# - 在 F# 中实现索引器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5189192/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com