Better yet, instead of working around the limitations of primitive types like string, make firstName, lastName, and nickName instances of a type Name that knows how to handle the zero value, then change the code that prints the full name to use an aggregate type FullName composed of all the Names and give it the ability to represent itself.<p>Oh, and given international considerations, don't use "first" and "last", prefer "given name" and "surname".<p>See for example <a href="https://wiki.c2.com/?PrimitiveObsession" rel="nofollow">https://wiki.c2.com/?PrimitiveObsession</a>