برنامه نویسی

متغیرهای تایپ شده و بدون تایپ (یا ثابت) در GO (Golang)

در Go (Golang) ، تمایز بین تایپ شده وت بدون علامت متغیرها (یا ثابت) برای درک نحوه برخورد با مقادیر توسط کامپایلر مهم است.

1 متغیرهای تایپ شده

  • بوها متغیر تایپ شده در زمان کامپایل یک نوع صریح تعریف شده دارد.
  • هنگامی که یک نوع به یک متغیر اختصاص داده می شود ، نمی تواند مقادیر نوع دیگری را بدون تبدیل صریح نگه دارد.
  • متغیرهای تایپ شده برای ایمنی نوع در زمان کامپایل بررسی می شوند.

مثال:

var x int = 42      // x is explicitly typed as `int`
var y float64 = 3.14 // y is explicitly typed as `float64`
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در این حالت ، x فقط می تواند مقادیر عدد صحیح را نگه دارد ، و y فقط می تواند مقادیر نقطه شناور را نگه دارد.


2 متغیرهای بدون نسخه (یا ثابت)

  • در متغیر بدون نسخه (یا ثابت) نوع خاصی ندارد که در زمان کامپایل به آن اختصاص داده شود.
  • در عوض ، آن را دارد نوع پیش فرض این بر اساس زمینه ای که در آن استفاده می شود استنباط می شود.
  • مقادیر بدون استفاده از انعطاف پذیر است و می تواند در زمینه هایی که انواع مختلفی انتظار می رود ، تا زمانی که سازگار باشند ، استفاده شود.

مثال:

const z = 42 // z is an untyped constant
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در اینجا z ثابت ثابت است نوع آن به صراحت تعریف نشده است ، بنابراین می تواند در زمینه های مختلفی که در آن استفاده می شود استفاده شود intبا float64، یا سایر انواع سازگار انتظار می رود.


تفاوت های کلیدی

جنبه متغیرهای تایپ شده متغیرها/ثابت های بدون نسخه
تعریف نوع صریح تعریف شده (به عنوان مثال ، intبا float64) بدون نوع صریح ؛ استنباط شده از متن
انعطاف پذیری محدود به نوع اعلام شده در زمینه های مختلف قابل استفاده است
ایمنی تایپ در زمان کامپایل اجرا می شود انعطاف پذیر ، اما ممکن است به تبدیل های ضمنی منجر شود
نمونه var x int = 42 const z = 42

نمونه ای از ثابت های بدون نسخه در عمل

package main

import "fmt"

func main() {
    const untypedConst = 42 // untyped constant

    var a int = untypedConst      // works: untypedConst is treated as int
    var b float64 = untypedConst // works: untypedConst is treated as float64

    fmt.Println(a, b) // Output: 42 42
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در این مثال ، untypedConst ثابت ثابت است می توان آن را به هر دو اختصاص داد int وت float64 متغیرهای بدون تبدیل صریح زیرا نوع آن بر اساس زمینه استنباط می شود.


انواع پیش فرض برای ثابت های بدون نسخه

هنگامی که از ثابت بدون نسخه در زمینه ای استفاده می شود که یک نوع مورد نیاز باشد ، کامپایلر آن را اختصاص می دهد نوع پیش فرض بر اساس ارزش آن:

  • به معنای واقعی کلمه: int
  • لفظهای نقطه شناور: float64
  • لفظهای پیچیده: complex128
  • LITERALS RUNE: rune (نام مستعار برای int32)
  • رشته های رشته ای: string

مثال:

const c = 42      // default type: int
const d = 3.14    // default type: float64
const e = "hello" // default type: string
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا