// Copyright (c) 2024 Celestino Amoroso (celestino.amoroso@gmail.com). // All rights reserved. // func-fmt.go package expr import "fmt" func printFunc(ctx ExprContext, name string, args []any) (result any, err error) { var n int if n, err = fmt.Print(args...); err == nil { result = int64(n) } return } func printLnFunc(ctx ExprContext, name string, args []any) (result any, err error) { var n int if n, err = fmt.Println(args...); err == nil { result = int64(n) } return } func ImportFmtFuncs(ctx ExprContext) { ctx.RegisterFunc("print", newGolangFunctor(printFunc), typeInt, []ExprFuncParam{ newFuncParamFlag(paramItem, pfRepeat), }) ctx.RegisterFunc("println", newGolangFunctor(printLnFunc), typeInt, []ExprFuncParam{ newFuncParamFlag(paramItem, pfRepeat), }) } func init() { registerImport("fmt", ImportFmtFuncs, "String and console formatting functions") }