xxxxxxxxxx
func pay(ps T) (string, float64) {
var (name string; salary float64)
switch v := ps.(type) {
case *Developer:
name = v.FirstName + v.LastName
salary = v.HourlyRate * v.HoursWorkedInYear
case *Manager:
name = v.FirstName + v.LastName
salary = v.Salary * (1 + v.CommissionRate)
default:
name = "unknown"
salary = 0
}
return name, salary
}
xxxxxxxxxx
package main
import "fmt"
func main() {
// variable of empty interface type
var a interface {}
fmt.Println("Value:", a)
}