یعنی اینکه خروجی settype رو دوباره توی متغیر v$ نگذارین. چون اینطوری باعث میشه نتیجه تبدیل که true (تونسته تبدیل کنه) یا false (نتونسته تبدیل کنه) توی v$ ذخیره بشه و طبیعیه که نوع متغیر v$ میشه boolean !
بله درسته حق با شماست. ولی در هرصورت تونسته تبدیل کنه و مقدار درست (1) رو داره برمیگردونه و اینجا بازم مقدار boolean رو داره با رشته goodbye برابر تشخیص میده!