From edecf0453e549cb77e3be2cc5aa176bda41d4e31 Mon Sep 17 00:00:00 2001 From: huangsimin Date: Tue, 20 Aug 2019 11:38:24 +0800 Subject: [PATCH] =?UTF-8?q?tried=20WordsArray=E6=94=AF=E6=8C=81=E4=B8=AD?= =?UTF-8?q?=E6=96=87,=20=E5=B9=B6=E4=B8=94=E5=8D=95=E5=85=83=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tree/tried/tried.go | 14 ++++++++------ tree/tried/tried_index.go | 2 +- tree/tried/tried_test.go | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/tree/tried/tried.go b/tree/tried/tried.go index 4b511bb..4c58fff 100644 --- a/tree/tried/tried.go +++ b/tree/tried/tried.go @@ -46,8 +46,10 @@ func (tried *Tried) Put(words string, values ...interface{}) { cur := tried.root var n *Node - for i := 0; i < len(words); i++ { - w := tried.wiStore.Byte2Index(words[i]) + bytes := []byte(words) + + for i := 0; i < len(bytes); i++ { + w := tried.wiStore.Byte2Index(bytes[i]) if cur.data == nil { cur.data = make([]*Node, tried.wiStore.DataSize) @@ -121,12 +123,12 @@ func (tried *Tried) Traversal(every func(cidx uint, value interface{}) bool) { func (tried *Tried) WordsArray() []string { var result []string - var traversal func([]rune, *Node) - traversal = func(prefix []rune, cur *Node) { + var traversal func([]byte, *Node) + traversal = func(prefix []byte, cur *Node) { for i, n := range cur.data { if n != nil { - nextPrefix := append(prefix, rune(tried.wiStore.Index2Byte(uint(i)))) + nextPrefix := append(prefix, tried.wiStore.Index2Byte(uint(i))) traversal(nextPrefix, n) if n.value != nil { result = append(result, string(nextPrefix)) @@ -137,7 +139,7 @@ func (tried *Tried) WordsArray() []string { } if tried.root != nil { - traversal([]rune{}, tried.root) + traversal([]byte{}, tried.root) } return result diff --git a/tree/tried/tried_index.go b/tree/tried/tried_index.go index 657773a..c73b70b 100644 --- a/tree/tried/tried_index.go +++ b/tree/tried/tried_index.go @@ -133,7 +133,7 @@ func indexWordUpperLowerDigital(w uint) byte { return byte(w) + 'a' } -// wordIndex256 all byte 不支持中文 +// wordIndex256 all byte 支持中文 func wordIndex256(w byte) uint { return uint(w) } diff --git a/tree/tried/tried_test.go b/tree/tried/tried_test.go index 4e5378f..b6b7789 100644 --- a/tree/tried/tried_test.go +++ b/tree/tried/tried_test.go @@ -84,7 +84,7 @@ func TestTried_String(t *testing.T) { wordsList = append(wordsList, []string{"azAZ09", "aRGFDSFDSzAasdZ06789", "A28374JHFudfsu09qwzzdsw874FDSAZfer"}) triedList = append(triedList, NewWithWordType(WordIndex256)) - wordsList = append(wordsList, []string{"21`3tcdbxcfhyop8901zc[]\\'/?()#$%^&**!\x01 09-213", "!@$*#))(#*", `\/213dsfsdf`}) + wordsList = append(wordsList, []string{"21`3tcdbxcf囉hyop打算8901zc[]\\'/?()#$%^&**!\x01 09-213", "的支持中文", "!@$*#)中文)(#*", `\/213dsfsdf`}) triedList = append(triedList, NewWithWordType(WordIndex32to126)) wordsList = append(wordsList, []string{" 21`3tcdbxcfhyop8901zc[]\\'/?()#$%^&**! ", "AZaz09~ dys!@#$)(*^$#", "<>.,?/"})