我知道標題是非常糟糕的,但不知道怎麼問這個問題..我有一個HTML形式的選擇輸入返回多個值,如:打開(包括HTML表單)多個布爾值轉換成字符串(圍棋)
<select name="rights" multiple>
<option value="create">create</option>
<option value="view">view</option>
<option value="edit">edit</option>
<option value="delete">delete</option>
</select>
我再有,可以檢查該值的形式功能包含:
func formContains(slice []string, item string) bool {
set := make(map[string]struct{}, len(slice))
for _, s := range slice {
set[s] = struct{}{}
}
_, ok := set[item]
return ok
}
這樣我就可以撥打電話:
err := r.ParseForm()
// err check
rights := r.Form["rights"]
log.Println(formContains(rights, "create"))
我想要做的是檢查表單包含哪些值,然後返回一個字符串,例如,如果表單包含權限「創建」和「刪除」,那麼它應該返回: 「1001」,如果它包含權限「查看」,「編輯」和「刪除」,那麼它應該返回「0111」。
我將能夠用很多if/else或switch語句實現所需的結果,但是我知道必須有更聰明的方法..我考慮過創建一個最終會看起來像這樣的數組的可能性:[0] [1] [0] [1](在情況下,權利是「查看」和「刪除」),然後將數組轉換爲字符串..但到目前爲止它已經不成功..
是的,按位邏輯FTW :) –
哇,這真的很棒..非常感謝! – fisker