MCPcopy Create free account
hub / github.com/araddon/qlbridge / joinEval

Function joinEval

expr/builtins/string.go:296–328  ·  view source on GitHub ↗
(ctx expr.EvalContext, vals []value.Value)

Source from the content-addressed store, hash-verified

294}
295
296func joinEval(ctx expr.EvalContext, vals []value.Value) (value.Value, bool) {
297 sep, ok := value.ValueToString(vals[len(vals)-1])
298 if !ok {
299 return value.EmptyStringValue, false
300 }
301 args := make([]string, 0)
302 for i := 0; i < len(vals)-1; i++ {
303 switch valTyped := vals[i].(type) {
304 case value.SliceValue:
305 svals := make([]string, len(valTyped.Val()))
306 for i, sv := range valTyped.Val() {
307 svals[i] = sv.ToString()
308 }
309 args = append(args, svals...)
310 case value.StringsValue:
311 svals := make([]string, len(valTyped.Val()))
312 for i, sv := range valTyped.Val() {
313 svals[i] = sv
314 }
315 args = append(args, svals...)
316 case value.StringValue, value.NumberValue, value.IntValue:
317 val := valTyped.ToString()
318 if val == "" {
319 continue
320 }
321 args = append(args, val)
322 }
323 }
324 if len(args) == 0 {
325 return value.EmptyStringValue, false
326 }
327 return value.NewStringValue(strings.Join(args, sep)), true
328}
329
330// HasPrefix string evaluation to see if string begins with
331//

Callers

nothing calls this directly

Calls 4

ValueToStringFunction · 0.92
NewStringValueFunction · 0.92
ToStringMethod · 0.65
ValMethod · 0.45

Tested by

no test coverage detected