golang switch type