gjv*_*amp 3 enums f# pattern-matching discriminated-union
首次使用F#进行生产,需要一些帮助.请参阅此代码,我在每行添加了警告作为注释:
type AssetClass =
| Corp
| Corp_SME
| Res_Mort
| Qual_Ret
| Ret_Oth
let Correlation assetClass pd sales =
match assetClass with
| Corp -> 0.12
| CORP_SME -> 0.24 // warning FS0049: Uppercase variable identifiers
| Res_Mort -> 0.15 // warning FS0026: This rule will never be matched
| Qual_Ret -> 0.04 // warning FS0026: This rule will never be matched
| Ret_Oth -> 0.03 // warning FS0026: This rule will never be matched
Run Code Online (Sandbox Code Playgroud)
我检查了它并没有虚张声势,第三个和其他情况确实被忽略了.我没有到这里来的是什么?(我在实际实现中使用的pd和销售输入,我在这里省略了公式.)
我想要做的是使用区分联合,因为我将在C#中使用枚举,然后打开它.所以在C#中我会输入这个:
enum AssetClass {
Corp,
Corp_SME,
Ret_Oth
}
float Correlation(AssetClass assetClass){
switch(assetClass){
case Corp: return 0.12;
case Corp_SME: return 0.12;
case Ret_Oth: return 0.12;
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮帮我吗?
提前致谢,
格特 - 扬
您调用了构造函数,Corp_SME但尝试将其与CORP_SME(全部大写)匹配.由于这不是任何构造函数的名称,因此F#假设它是一个变量名(因此是关于大写变量名的警告),然后当然匹配之前未匹配的所有内容(因此后续警告).
| 归档时间: |
|
| 查看次数: |
647 次 |
| 最近记录: |