2011-02-03 55 views
3

我有几个带标题的页面,我希望能够在某种枚举类型中将这些标题定义为字符串常量。这样用于分组常量的F#结构

pageTitles = 
| HOME = "Home" 
| SALES = "Sales" 
| MARKETING = "Marketing" 
| LOGOUT = "Logout" 

,然后一些使用它像:

if title = pageTitles.SALES then 
    //Goto sales 
+0

你在做什么似乎是做正确的事。你的问题到底是什么?你问是否有其他的方法? – dexter 2011-02-03 21:00:03

回答

3

我认为你必须把它们放在一个模块中。例如:

module pageTitles = 
    [<Literal>] 
    let HOME = "Home" 
    ... 
+4

值得一提的是,`Literal`属性可以在模式匹配中使用常量。 (否则你就不需要它了。)我也推荐使用`PascalCase` - 肯定用于模块名称,也可能用于常量。 – 2011-02-03 21:13:27

4

组合丹尼尔/托马斯建议:

module PageTitles = 
    [<Literal>] 
    let HOME = "Home" 
    [<Literal>] 
    let SALES = "Sales" 
... 
open PageTitles 
... 
match title with 
| HOME -> // goto home 
| SALES -> // goto sales