如何在F#中使用自制类型?

时间:2013-10-08 06:26:46

标签: arrays types f#

我做了一个类型,但我不知道如何正确使用它,我没有在谷歌找到任何解决方案。

type Sample =
{
    TrackPosition : int
    TubePosition : int
    Barcode : string
}

let arraySamples = Array.create Scenario.Samples.NumberOfSamples **Sample**
BarcodeGenerieren.Samples.Sample
let mutable trackPosition = Scenario.Samples.StartTrackPositions
let mutable index = 1
for i in 1 .. Scenario.Samples.NumberOfSamples do
    let randomNumber = System.Random().Next(0,9999)
    if index > 24 then
        trackPosition <- trackPosition + 1
        index <- 1

    arraySamples.[index] <- **new Sample{TrackPosition= trackPosition, TubePosition =   index, Barcode = sprintf "100%s%06d" ((trackPosition + 1) - Scenario.Samples.StartTrackPositions) randomNumber}**

所以我的问题是,当我提供数组的类型以及何时将数据提供给数组时,我应该更改它以使其工作?

1 个答案:

答案 0 :(得分:3)

您创建了所谓的record type。您可以使用以下语法

对其进行初始化
{TrackPosition = 0;TubePosition = 0;Barcode = "string"}

你在最后一行的语法几乎是正确的 - 它应该是

arraySamples.[index] <- Sample{
    TrackPosition= trackPosition; 
    TubePosition = index; 
    Barcode = sprintf "100%s%06d" ((trackPosition + 1) - Scenario.Samples.StartTrackPositions) randomNumber}

更改

  1. 消除new
  2. ,替换为;