جلوی باگ شیما رو بگیرین! کسی دوست نداره بهش بگن «شیما عزیز خوش اومدی»

به جز عنوان واقعا چیز زیادی برای گفتن نیست. توی فارسی وقتی اسمی به الف یا و ختم بشه و ما بهش بگیم «$اسم عزیز خوش اومدی» یک باگ ریز پیش میاد. مثلا این برنامه رو نگاه کنین:

package main

import "fmt"

func main() {
  var name string = "کاربر"
  for name != "رفتم" {
      fmt.Print(name, " عزیز خوش اومدی.\n\n")
      fmt.Print("حالا اسم جدیدت رو بده: ")
      fmt.Scanln(&name)
  }
}

که نمونه اجراش می‌شه این:

$ go run 1.go 
کاربر عزیز خوش اومدی.

حالا اسم جدیدت رو بده: جادی
جادی عزیز خوش اومدی.

حالا اسم جدیدت رو بده: شیما
شیما عزیز خوش اومدی.

حالا اسم جدیدت رو بده: رفتم

و درست همینجا است که شیما به من ایمیل زده و گفته وقتی سایتی بهش می گه «شیما عزیز خوش اومدی» اصلا براش جذاب نیست. پس برنامه باید این شکلی باشه:

package main

import "fmt"

func main() {
  var name string = "کاربر"
  var greeter string
  for name != "رفتم" {
      if (name[len(name)-2:] == "ا") || (name[len(name)-2:] == "و") {
        greeter = name + "ی"
      } else {
        greeter = name
      }
      fmt.Print(greeter, " عزیز خوش اومدی.\n\n")
      fmt.Print("حالا اسم جدیدت رو بده: ")
      fmt.Scanln(&name)
  }
}

که خروجی شخصی‌ترین شبیه این بده:

$ go run 1.go 
کاربر عزیز خوش اومدی.

حالا اسم جدیدت رو بده: جادی
جادی عزیز خوش اومدی.

حالا اسم جدیدت رو بده: شیما
شیمای عزیز خوش اومدی.

حالا اسم جدیدت رو بده: شاهو
شاهوی عزیز خوش اومدی.

حالا اسم جدیدت رو بده: رفتم

خوبه؟ پس یک if جلوی باگ شیما رو بگیرین تا افرادی که اسمشون با الف یا و نموم می‌شه حس نکنن یک باگ در برنامه شما هستن.