Below is some part of the code
func (*ScrapperMin) ExecuteFunction(funcname string, obj interface{}, args [][]string) (interface{}, error) { inputs := make([]reflect.Value, 0) inputs2 := make([]string, 0) //var single = true var tt = make([]reflect.Value, 0) for i, _ := range args { if len(args[i]) == 1 { tt = append(tt, reflect.ValueOf(args[i][0])) inputs2 = append(inputs2, args[i][0]) } else { tt = append(tt, reflect.ValueOf(args[i])) inputs2 = append(inputs2, args[i][0]) //single = false } inputs = append(inputs, reflect.ValueOf(tt)) } method := reflect.ValueOf(obj).MethodByName(funcname) if method.IsValid() == false { return nil, errors.New("Invalid Method Name") } ret := method.Call(tt) return ret, nil } obj is a struct object that has 3 possibilities, a SyntaxCommand struct, a MathInteger struct or a CookieWebClient struct which contains different set of functions. The funcname is the function name intended to call on this object which is retrieved from file during runtime. Questions : 1. [][]args, if the second dimension slice has only one slice string (len 1), it will assumg the function accept string as argument, if it is more than 1 string it will pass an array, I am not sure reflect.ValueOf([]string) will be correct to pass array of string to destination function.. The second argument is second parameter of the function. 2. The program keep crashing and said invalid address, so I am assuming the function didn't get compiled into binaries because it was never refer in any part of the code 3. the method.IsValid() returns true, it seem to be able to know it is a correct method, but I am not sure the mechanism Thank you for your help On Wednesday, June 21, 2017 at 8:44:55 PM UTC+8, John Kenedy wrote: > > I read somewhere that Go will remove unused functions so that it wont be > included into binaries when it can prove no code is using it. > > However I am using reflection to call functions that are inside the > binaries without first having any variable using it. > > Is there compiler option to include every functions in source code into > binary so that it will be used at runtime upon request? > > PS : Please don't suggest to call those unused functions and discard the > output just to make it compiles into binary > > Thank you > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.