defer and variable num of func ,variable type