小编jai*_*ons的帖子

“golang.org/x/text”内的复数包存在问题

我正在对golang.org/x/text包进行一些测试,特别是feature/plural对子包及其MatchDigits方法。这就是我正在做的事情:

package main

import (
    "fmt"

    "golang.org/x/text/feature/plural"
    "golang.org/x/text/language"
)

func main() {
    fmt.Println(plural.Cardinal.MatchDigits(language.French, []byte{1}, 1, 0)) // "1" -> should print 2 (One) but prints 0 (Other)
    fmt.Println(plural.Cardinal.MatchDigits(language.French, []byte{2}, 1, 0)) // "2" -> prints 0 (Other) the correct value
    fmt.Println(plural.Cardinal.MatchDigits(language.French, []byte{1, 0}, 2, 0)) // "10" -> prints 0 (Other) the correct value
}
Run Code Online (Sandbox Code Playgroud)

这是我从以下位置获得预期结果的地方:http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html#fr

我还尝试了另一种具有更复杂复数规则的语言,例如捷克语,但输出不正确。

我错过了什么吗?我在这个包上找不到很多例子。

谢谢 !

编辑:

经过更多测试,我发现“1”的结果很好,使用 0 作为expscale参数:

fmt.Println(plural.Cardinal.MatchDigits(language.French, []byte{1}, 0, 0)) // …
Run Code Online (Sandbox Code Playgroud)

internationalization go

5
推荐指数
0
解决办法
472
查看次数

render.Bind 中驰空 http.Request.Body

我正在使用github.com/pressly/chi构建这个简单的程序,我尝试从以下位置解码一些 JSON http.Request.Body

package main

import (
    "encoding/json"
    "fmt"
    "net/http"

    "github.com/pressly/chi"
    "github.com/pressly/chi/render"
)

type Test struct {
    Name string `json:"name"`
}

func (p *Test) Bind(r *http.Request) error {
    err := json.NewDecoder(r.Body).Decode(p)
    if err != nil {
        return err
    }
    return nil
}

func main() {
    r := chi.NewRouter()

    r.Post("/products", func(w http.ResponseWriter, r *http.Request) {
        var p Test
        // err := render.Bind(r, &p)
        err := json.NewDecoder(r.Body).Decode(&p)

        if err != nil {
            panic(err)
        }

        fmt.Println(p)
    })

    http.ListenAndServe(":8080", r)
} …
Run Code Online (Sandbox Code Playgroud)

json http go go-chi

1
推荐指数
1
解决办法
5507
查看次数

标签 统计

go ×2

go-chi ×1

http ×1

internationalization ×1

json ×1