title: Type string argument as interface function in go?
body: <p>When you call NewSocialSeucirtyNumber function, I really don't understand how type socialSecurityNumber which has string type turns into Identifiable which has function of ID...</p>
  <p>I know that return type is Identifiable, but how does socialSecurityNumber which is string type turn into argument for ID() ??
  Can someone explain to me ?</p>
  <pre><code>type Identifiable interface {
      ID() string
  }
  
  type socialSecurityNumber string
  
  func NewSocialSecurityNumber(value string) Identifiable {
      return socialSecurityNumber(value)
  }
  
  func (ssn socialSecurityNumber) ID() string {
      return string(ssn)
  }
  </code></pre>