// 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") }