package main
import (
"fmt"
"os"
)
var f func() string
func init() {
if len() > 1 {
if [1] == "a" {
f = func() string {
return "bingo"
}
} else {
f = func() string {
return [1]
}
}
}
}
func main() {
(f())
}
package main
import (
"fmt"
"strings"
)
func double(data string) string {
return data + data
}
func upper(data string) string {
return (data)
}
var command = map[string]func(data string) string {
"double":double, "upper":upper }
func call(com, data string) string {
if function, ok := command[com]; ok {
return function(data)
}
return ""
}
func main() {
var com string = "upper"
var data string = "abcd"
(call(com, data))
com = "double"
(call(com, data))
}
package main
import (
"fmt"
"reflect"
)
func print(data string) {
("print:", data)
}
func add(a, b int) {
("add: ", a+b)
}
var command = map[string]interface{} {
"print":print, "add":add}
func call(name string, params ...interface{}) {
f := (command[name])
if len(params) != ().NumIn() {
return
}
in := make([], len(params))
for k, param := range params {
in[k] = (param)
}
(in)
}
func main() {
call("print", "abcdef")
call("add", 7, 9)
}