expr.AsKind not work?
未关闭
还没有人认领这个 Issue。
评估
调研方向
从提供的 Go 复现开始,检查 expr.AsKind 及其产生的编译错误。确定 int 与 int32 之间的不匹配是预期行为还是 bug,然后记录获取 int32 结果的受支持方式,或定义所需的修正。
由索引模型根据 Issue 内容生成。
描述
bug
research
package main
import (
"errors"
"fmt"
"reflect"
"github.com/expr-lang/expr"
)
type Number interface {
int | uint | uint32 | int32 | uint64 | int64 | float32 | float64
}
func TryStrToNum[T Number](str string) (retValue T, err error) {
program, err := expr.Compile(str, expr.AsKind(reflect.TypeOf(retValue).Kind()))
if err != nil {
fmt.Printf("Compile Error: %s, %v\n", str, err)
return
}
v, err := expr.Run(program, nil)
if err != nil {
fmt.Printf("Run Error: %s, %v\n", str, err)
return
}
retValue, flag := v.(T)
if !flag {
fmt.Printf("StrToNumber Error: %s, %v", str, v)
return retValue, errors.New(fmt.Sprintf("TryStrToNum error: %s", str))
}
return retValue, nil
}
func main() {
fmt.Println(TryStrToNum[int32]("1"))
}
/*
Compile Error: 1, expected int32, but got int
0 expected int32, but got int
*/
is it a bug ?
How to fix it?
- 主要语言
- Go
- 星标
- 8k
- 派生
- 529
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
expr-lang/expr 的其他 Issue
-
docs needed
难度 1/5 1-3 小时 新手友好度 62/100
-
难度 4/5 3-5 天 新手友好度 35/100
-
难度 5/5 一周以上 新手友好度 35/100
-
难度 3/5 1-2 天 新手友好度 55/100
-
log2 builtin 未关闭
难度 3/5 1-2 天 新手友好度 48/100
相似的 Issue
-
area/dev-productivity area/disaster-recovery area/ipcei kind/enhancement
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 1/5 1 小时以内 新手友好度 85/100
-
难度 2/5 1-3 小时 新手友好度 75/100
-
kind/bug status/0-triage
难度 2/5 1-3 小时 新手友好度 75/100
-
🤔 refinement needed
难度 2/5 1-3 小时 新手友好度 75/100
equinor/radix-operator#1979 ·