توی گولنگ ما دو نوع const داریم:
1️⃣ نوع اول Typed Constant ها هستن
این کانستنتها موقع تعریف، یک نوع مشخصی دارن و ما صراحتا به تایپ رو می نویسیم
مثال زیر رو ببینید ما به گولنگ گفتیم این کانست ما int هست و همونجا درجا تایپ int رو گرفته
const z int = 10
// correct
var x int = z
// incorrect
var y float64 = z
fmt.Println(x)
2️⃣ نوع دوم UnTyped Constant ها هستن
یعنی به یک نوع خاص محدود نیستن و میتونن توی شرایط مختلف با توجه به استفاده، به نوع مناسب تبدیل بشن
مثال زیر رو ببینیم وقتی به const تایپ ندادیم اگه موس رو ببرید روی اون IDE میزنه untyped یعنی موقعی که استفادش کردی تایپ مورد نظر رو میگیره
const z = 10
// convert to int
var x int = z
// convert to float64
var y float64 = z
// convert to complex128
var g complex128 = z
fmt.Println(x, y, g)
حالا توی مثال بالا ما x امون یک untyped constand هست و مقدار پیشفرض rune(int32) رو میگیره و خب rune هم همونطور که میدونید یک یونیکده(یعنی یک عدد) رو خروجی میده و یونیکد '1' هم 49 هست که با 1 میشه 50 و اگه دقت کنید y اینجا تایپ نداره پس خود به خود تایپ y هم rune میشه
var y = x + 1@LearnByLearn
#golang