Без инициализатора nil, в некоторых случаях ваша переменная может быть инициализирована с мусором (независимо от того, что было в пространстве памяти ранее). Существуют конкретные правила, касающиеся того, какие типы переменных (основанные на области действия, статическое хранилище и т. Д.) Автоматически инициализируются нулем для вас, но я всегда обнаруживал, что проще явно инициализировать все переменные, чем запоминать эти правила. *
Тем не менее, поскольку обе ветви вашего оператора if перекрывают любое предыдущее значение addChar, не должно быть ни одного случая, в котором вы можете увидеть недопустимое значение. Но, безусловно, ничего не мешает явно инициализировать в nil, и если будущий сопровождающий придет и изменит пути кода, вы можете обнаружить, что инициализатор спасает вас!