2011-02-03 27 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