builtin-iterator.go/run(): removed default operator (print item)
This commit is contained in:
parent
b6952444ab
commit
0677180456
@ -23,10 +23,12 @@ func parseRunArgs(localCtx ExprContext, args map[string]any) (it Iterator, op Fu
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if op, ok = args[iterParamOperator].(Functor); !ok && args[iterParamOperator] != nil {
|
if args[iterParamOperator] != nil {
|
||||||
|
if op, ok = args[iterParamOperator].(Functor); !ok || op == nil {
|
||||||
err = fmt.Errorf("paramter %q must be a function, passed %v [%s]", iterParamOperator, args[iterParamOperator], TypeName(args[iterParamOperator]))
|
err = fmt.Errorf("paramter %q must be a function, passed %v [%s]", iterParamOperator, args[iterParamOperator], TypeName(args[iterParamOperator]))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var vars *DictType
|
var vars *DictType
|
||||||
if vars, ok = args[iterParamVars].(*DictType); !ok && args[iterParamVars] != nil {
|
if vars, ok = args[iterParamVars].(*DictType); !ok && args[iterParamVars] != nil {
|
||||||
@ -51,7 +53,7 @@ func runFunc(ctx ExprContext, name string, args map[string]any) (result any, err
|
|||||||
var ok bool
|
var ok bool
|
||||||
var op Functor
|
var op Functor
|
||||||
var v any
|
var v any
|
||||||
var usingDefaultOp = false
|
// var usingDefaultOp = false
|
||||||
var params map[string]any
|
var params map[string]any
|
||||||
var item any
|
var item any
|
||||||
|
|
||||||
@ -60,18 +62,20 @@ func runFunc(ctx ExprContext, name string, args map[string]any) (result any, err
|
|||||||
|
|
||||||
if it, op, err = parseRunArgs(localCtx, args); err != nil {
|
if it, op, err = parseRunArgs(localCtx, args); err != nil {
|
||||||
return
|
return
|
||||||
} else if op == nil {
|
// } else if op == nil {
|
||||||
op = NewGolangFunctor(printLnFunc)
|
// op = NewGolangFunctor(printLnFunc)
|
||||||
usingDefaultOp = true
|
// usingDefaultOp = true
|
||||||
}
|
}
|
||||||
|
|
||||||
for item, err = it.Next(); err == nil; item, err = it.Next() {
|
for item, err = it.Next(); err == nil; item, err = it.Next() {
|
||||||
if usingDefaultOp {
|
// if usingDefaultOp {
|
||||||
params = map[string]any{ParamItem: []any{item}}
|
// params = map[string]any{ParamItem: []any{item}}
|
||||||
} else {
|
// } else {
|
||||||
params = map[string]any{ParamIndex: it.Index(), ParamItem: item}
|
// params = map[string]any{ParamIndex: it.Index(), ParamItem: item}
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
if op != nil {
|
||||||
|
params = map[string]any{ParamIndex: it.Index(), ParamItem: item}
|
||||||
if v, err = op.InvokeNamed(localCtx, iterParamOperator, params); err != nil {
|
if v, err = op.InvokeNamed(localCtx, iterParamOperator, params); err != nil {
|
||||||
break
|
break
|
||||||
} else {
|
} else {
|
||||||
@ -81,11 +85,15 @@ func runFunc(ctx ExprContext, name string, args map[string]any) (result any, err
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if err == io.EOF {
|
if err == io.EOF {
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
if op == nil {
|
||||||
|
ctx.UnsafeSetVar(iterVarStatus, it.Count())
|
||||||
|
}
|
||||||
result, _ = localCtx.GetVar(iterVarStatus)
|
result, _ = localCtx.GetVar(iterVarStatus)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user