C allows comma-separated argument lists via variadic macros. Whereas AFAIK
golang allows only variadic arguments of the same type.
(Please excuse if I am wrong, I am considering myself a golang newbie)
C demo program that prints: -- -- 1 and 1 1 and 1
// ## C variadic macro test
#include
Make the type interface{} and you can pass anything and use reflect
> On Nov 30, 2019, at 2:08 PM, minfo...@arcor.de wrote:
>
>
> C allows comma-separated argument lists via variadic macros. Whereas AFAIK
> golang allows only variadic arguments of the same type.
> (Please excuse if I am wrong,
Thanks, but then you would have to define the interface beforehand for any
argument type. And there are a lot:
format strings, strings, characters, integers of different size,
floating-pont numbers, file-ids
Meanwhile I found this discussion:
https://github.com/golang/go/issues/18605
which hints
You might refer to...
https://blog.learngoprogramming.com/golang-variadic-funcs-how-to-patterns-369408f19085
...to better appreciate Robert's advice. As he suggested, a variadic Go
function accepting a slice of the special, magic "empty interface" type
("interface{}") can indeed do anything. The
func PR(f string, a ...interface{}) {
if d { return }
fmt.Fprintf(os.Stderr, f, a...)
}
Add appropriate imports.
> On Nov 30, 2019, at 12:08 PM, minfo...@arcor.de wrote:
>
> C allows comma-separated argument lists via variadic macros. Whereas AFAIK
> golang allows only variadi
That did it:
// --- variad.go -- variadic function test
package main
import("fmt";"os")
// flags
var df,ef int = 1,1
// variadic function thru empty interface
func PR(f string, a ...interface{}) {
if df!=0 { fmt.Printf(f, a...)
if ef!=0 { fmt.Fprintf(os.Stderr,f, a...) } }
}
fun