खोज…


टिप्पणियों

गो चरित्र, स्ट्रिंग, बूलियन और संख्यात्मक मानों के स्थिरांक का समर्थन करता है।

एक निरंतर घोषणा

स्थिरांक चर की तरह घोषित कर दिया, लेकिन प्रयोग कर रहे हैं const कीवर्ड:

const Greeting string = "Hello World"
const Years int = 10
const Truth bool = true

चरों के लिए, ऊपरी केस अक्षर से शुरू होने वाले नाम निर्यात किए जाते हैं ( सार्वजनिक ), निचले मामले से शुरू होने वाले नाम नहीं हैं।

// not exported
const alpha string = "Alpha"
// exported
const Beta string = "Beta"

स्थिरांक का उपयोग किसी भी अन्य चर की तरह किया जा सकता है, इस तथ्य को छोड़कर कि मूल्य को बदला नहीं जा सकता है। यहाँ एक उदाहरण है:

package main

import (
    "fmt"
    "math"
)

const s string = "constant"

func main() {
    fmt.Println(s) // constant

    // A `const` statement can appear anywhere a `var` statement can.
    const n = 10
    fmt.Println(n)                           // 10
    fmt.Printf("n=%d is of type %T\n", n, n) // n=10 is of type int

    const m float64 = 4.3
    fmt.Println(m) // 4.3

    // An untyped constant takes the type needed by its context.
    // For example, here `math.Sin` expects a `float64`.
    const x = 10
    fmt.Println(math.Sin(x)) // -0.5440211108893699
}

खेल का मैदान

एकाधिक स्थिरांक घोषणा

आप एक ही const ब्लॉक के भीतर कई स्थिरांक घोषित कर सकते हैं:

const (
    Alpha = "alpha"
    Beta  = "beta"
    Gamma = "gamma"
)

और स्वचालित रूप से iota कीवर्ड के साथ वृद्धि स्थिरांक:

const (
    Zero = iota // Zero == 0
    One         // One  == 1
    Two         // Two  == 2
)

स्थिरांक घोषित करने के लिए iota का उपयोग करने के अधिक उदाहरणों के लिए, Iota देखें।

आप कई असाइनमेंट का उपयोग करके कई स्थिरांक भी घोषित कर सकते हैं। हालाँकि, यह वाक्य रचना पढ़ने में कठिन हो सकती है और इसे आमतौर पर टाला जाता है।

const Foo, Bar = "foo", "bar"

टाइप बनाम अनटाइपड कॉन्स्टेंट

गो में लगातार टाइप किया जा सकता है या अनपेड किया जा सकता है। उदाहरण के लिए, निम्नलिखित स्ट्रिंग शाब्दिक दिए गए हैं:

"bar"

कोई कह सकता है कि शाब्दिक का प्रकार string , हालांकि, यह शब्दार्थ रूप से सही नहीं है। इसके बजाय, शाब्दिक अनकैप्ड स्ट्रिंग स्थिरांक हैं । यह एक स्ट्रिंग है (अधिक सही ढंग से, इसका डिफ़ॉल्ट प्रकार string ), लेकिन यह एक गो मान नहीं है और इसलिए इसका कोई प्रकार नहीं है जब तक कि इसे सौंपा या संदर्भ में टाइप नहीं किया जाता है। यह एक सूक्ष्म अंतर है, लेकिन समझने के लिए एक उपयोगी है।

इसी प्रकार, यदि हम शाब्दिक को स्थिरांक पर नियत करते हैं:

const foo = "bar"

यह तब से अप्रभावित रहता है, डिफ़ॉल्ट रूप से, स्थिरांक अनछुए होते हैं। इसे टाइप किए गए स्ट्रिंग स्थिरांक के रूप में भी घोषित करना संभव है:

const typedFoo string = "bar"

अंतर तब खेलने में आता है जब हम इन स्थिरांक को एक संदर्भ में निर्दिष्ट करने का प्रयास करते हैं जिसमें टाइप होता है। उदाहरण के लिए, निम्नलिखित पर विचार करें:

var s string
s = foo      // This works just fine
s = typedFoo // As does this

type MyString string
var mys MyString
mys = foo      // This works just fine
mys = typedFoo // cannot use typedFoo (type string) as type MyString in assignment


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow