2回目以降のmacher.Pattern()でパターン文字列が取得できない
JanFish opened this issue · comments
JanFish commented
例えば、以下のようなコードのときに、ふたつめの以降は空文字が表示されます。
m, err := dict.Matcher("ai")
p, err := m.Pattern()
fmt.Println(p)
p, err := m.Pattern()
fmt.Println(p)
pattern.go内のPattern()関数内の最初にある以下の箇所が原因ではないと思います。
if m.patterned {
return pattern, nil
}
これは下記が正しいのではないでしょうか?
if m.patterned {
return m.pattern, nil
}
また、上記の変更をしても、MacherOptionsを変更してパターン文字列を取得しても、パターンは変更されません。
m, err := dict.Matcher("ai")
m.SetOptions(emacsMacherOptions)
p, err := m.Pattern()
fmt.Println(p)
m.SetOptions(vimMacherOptions)
p, err := m.Pattern()
fmt.Println(p)
たまたまテストコードを書いているときに発見したので、本来、このような使い方はしないと思うので問題ないのかもしれませんが、報告します。
MURAOKA Taro commented
ありがとうございます。修正しました 🙇
MURAOKA Taro commented
@JanFish 後半の件は、別途 issue を建ててもらえますか?
MURAOKA Taro commented
ごめんなさい。こちらで建てておきます。
MURAOKA Taro commented
@JanFish #9 この内容で相違ないか、念のため確認してください。
JanFish commented
修正後のソースを入れて確認しました。無事動作しました。修正ありがとうございました。