खोज…


परिचय

कार्यों में एक कार्य करने के लिए Go में फ़ंक्शंस संगठित, पुन: प्रयोज्य कोड प्रदान करते हैं। फ़ंक्शंस कोडिंग प्रक्रिया को सरल करते हैं, अनावश्यक तर्क को रोकते हैं, और कोड का पालन करना आसान बनाते हैं। यह विषय गो में कार्यों, तर्कों, मापदंडों, रिटर्न स्टेटमेंट और स्कोप की घोषणा और उपयोग के बारे में बताता है।

वाक्य - विन्यास

  • func () // फ़ंक्शन प्रकार जिसमें कोई तर्क और कोई वापसी मान नहीं है
  • func (x int) int // पूर्णांक को स्वीकार करता है और पूर्णांक देता है
  • func (ए, बी इंट, जेड फ्लोट 32) बूल // 2 पूर्णांक स्वीकार करता है, एक फ्लोट और एक बूलियन वापस करता है
  • func (उपसर्ग स्ट्रिंग, मान ... int) // "वैराडिक" फ़ंक्शन जो एक स्ट्रिंग और एक या अधिक संख्या में पूर्णांक स्वीकार करता है
  • func () (int, bool) // फंक्शन दो मान लौटाता है
  • func (ए, बी इंट, जेड फ्लोट64, ऑप्ट ... इंटरफ़ेस {}) (सफलता बूल) // 2 पूर्णांक, एक फ्लोट और एक या अधिक संख्या में इंटरफेस और रिटर्न स्वीकार करता है जिसका नाम बूलियन मान है (जो पहले से ही फ़ंक्शन के अंदर आरंभीकृत है। )

मूल घोषणा

एक साधारण फ़ंक्शन जो किसी भी पैरामीटर को स्वीकार नहीं करता है और किसी भी मान को वापस नहीं करता है:

func SayHello() {
    fmt.Println("Hello!")
}

पैरामीटर

एक फ़ंक्शन वैकल्पिक रूप से मापदंडों का एक सेट घोषित कर सकता है:

func SayHelloToMe(firstName, lastName string, age int) {
    fmt.Printf("Hello, %s %s!\n", firstName, lastName)
    fmt.Printf("You are %d", age)
}

ध्यान दें कि firstName का प्रकार छोड़ा गया है क्योंकि यह lastName समान है।

वापसी मान

एक फ़ंक्शन कॉलर को एक या अधिक मान लौटा सकता है:

func AddAndMultiply(a, b int) (int, int) {
    return a+b, a*b
}

दूसरा रिटर्न मान भी त्रुटि संस्करण हो सकता है:

import errors

func Divide(dividend, divisor int) (int, error) {
    if divisor == 0 {
        return 0, errors.New("Division by zero forbidden")
    }
    return dividend / divisor, nil
}

दो महत्वपूर्ण बातों पर ध्यान दिया जाना चाहिए:

  • एक वापसी मूल्य के लिए कोष्ठक छोड़ा जा सकता है।
  • प्रत्येक return स्टेटमेंट को सभी घोषित रिटर्न मानों के लिए एक मूल्य प्रदान करना होगा।

जिसका नाम रिटर्न वैल्यूज रखा गया है

वापसी मान एक स्थानीय चर को सौंपा जा सकता है। एक खाली return स्टेटमेंट का उपयोग उनके वर्तमान मूल्यों को वापस करने के लिए किया जा सकता है। इसे "नग्न" वापसी के रूप में जाना जाता है। नग्न रिटर्न स्टेटमेंट का उपयोग केवल छोटे कार्यों में किया जाना चाहिए क्योंकि वे लंबे कार्यों में पठनीयता को नुकसान पहुंचाते हैं:

func Inverse(v float32) (reciprocal float32) {
    if v == 0 {
        return
    }
    reciprocal = 1 / v
    return
}

इसे खेल के मैदान पर खेलें

//A function can also return multiple values
func split(sum int) (x, y int) {
    x = sum * 4 / 9
    y = sum - x
    return
}

इसे खेल के मैदान पर खेलें

दो महत्वपूर्ण बातों पर ध्यान दिया जाना चाहिए:

  • रिटर्न वैल्यू के आसपास कोष्ठक अनिवार्य है
  • एक खाली return स्टेटमेंट हमेशा प्रदान किया जाना चाहिए।

शाब्दिक कार्य और समापन

एक साधारण शाब्दिक फ़ंक्शन, Hello! मुद्रण Hello! टालने के लिए:

package main

import "fmt"

func main() {
    func(){
        fmt.Println("Hello!")
    }()
}

इसे खेल के मैदान पर खेलें


एक शाब्दिक समारोह, str तर्क को मुद्रित करना:

package main

import "fmt"

func main() {
    func(str string) {
        fmt.Println(str)
    }("Hello!")
}

इसे खेल के मैदान पर खेलें


एक शाब्दिक फ़ंक्शन, चर str पर समापन:

package main

import "fmt"

func main() {
    str := "Hello!"
    func() {
        fmt.Println(str)
    }()
}

इसे खेल के मैदान पर खेलें


एक चर के लिए शाब्दिक फ़ंक्शन निर्दिष्ट करना संभव है:

package main

import (
    "fmt"
)

func main() {
    str := "Hello!"
    anon := func() {
        fmt.Println(str)
    }
    anon()
}

इसे खेल के मैदान पर खेलें

वैराडिक कार्य

किसी भी संख्या में अनुगामी तर्कों के साथ एक चर समारोह को बुलाया जा सकता है। उन तत्वों को एक स्लाइस में संग्रहीत किया जाता है।

package main

import "fmt"

func variadic(strs ...string) {
     // strs is a slice of string
     for i, str := range strs {
         fmt.Printf("%d: %s\n", i, str)
     }
}

func main() {
     variadic("Hello", "Goodbye")
     variadic("Str1", "Str2", "Str3")
}

इसे खेल के मैदान पर खेलें

तुम भी एक चर समारोह के लिए एक टुकड़ा दे सकते हैं, के साथ ... :

func main() {
     strs := []string {"Str1", "Str2", "Str3"}

     variadic(strs...)
}

इसे खेल के मैदान पर खेलें



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