2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
अस्माभिः पूर्वलेखे if and for इति परिचयः कृतः ।continue
१०० अन्तः समसङ्ख्यानां योगं गणयितुं कथनम् । यथा वयं कोडं लिखामः,continue
statement अस्मान् कतिपयान् पुनरावृत्तयः त्यक्तुं साहाय्यं करिष्यति येषां आवश्यकता नास्ति, उदाहरणार्थं, अस्मिन् उदाहरणे, वयं सर्वाणि विषमसङ्ख्यानि लङ्घयिष्यामः ।
- sum := 0
- for i := 1; i < 100; i++{
- if i & 1 == 0 {
- continue
- }
- sum += i
- }
-
- fmt.Println("the sum is",sum)
प्रोग्रामिंग् इत्यस्मिन् प्रायः अस्माकं समानप्रकारस्य तत्त्वसमूहेन सह व्यवहारः करणीयः भवति, एते तत्त्वसमूहाः च Go भाषायां विशिष्टैः दत्तांशसंरचनैः प्रतिनिधित्वं कुर्वन्ति । अद्य अहं भवद्भ्यः Go इत्यस्मिन् विस्तरेण अनेकानाम् संग्रहप्रकारानाम् परिचयं करिष्यामि: array, slice and map इति ।
प्रथमं सरणीभिः आरभामः । Array इति Go इत्यस्मिन् सर्वाधिकं मूलभूतं दत्तांशसंरचना अस्ति । एकदा सरणी घोषिता भवति तदा तस्य दीर्घता परिवर्तयितुं न शक्यते । सरणीनां घोषणां आरम्भीकरणं च अतीव सरलं भवति,
सरणीं घोषयन्ते सति भवद्भिः सरणीप्रकारः, सरणीदीर्घता च निर्दिष्टव्या । अत्र सरणी कथं घोषितं भवति ।
var arrayName [arrayLength]elementType
यथा, 5 दीर्घतायाः पूर्णाङ्कसरणीं घोषयन्तु ।
var numbers [5]int
भवान् विविधरीत्या सरणीं आरभतुं शक्नोति:
var numbers = [5]int{1, 2, 3, 4, 5}
:=
लघुकथनम् : १.numbers := [5]int{1, 2, 3, 4, 5}
numbers := [...]int{1, 2, 3, 4, 5}
numbers := [5]int{0: 1, 4: 5}
भवन्तः अनुक्रमणिकाद्वारा सरणीयां तत्त्वानि अभिगन्तुं शक्नुवन्ति, 0 तः आरभ्य:
value := numbers[2] // 获取索引为 2 的元素
भवन्तः उपयोक्तुं शक्नुवन्तिfor
सरणीयां सर्वेषां तत्त्वानां माध्यमेन लूप् कुर्वन्तु:
- for i, value := range numbers {
- fmt.Printf("Index: %d, Value: %dn", i, value)
- }
भवन्तः अन्तर्निर्मितस्य उपयोगं कर्तुं शक्नुवन्तिlen
सरणीयाः दीर्घतां प्राप्तुं कार्यं : १.
length := len(numbers)
यदि कश्चन सरणी स्पष्टतया आरम्भः न भवति तर्हि तस्य तत्त्वानि स्वयमेव तेषां प्रकारस्य शून्यमूल्ये सेट् भवन्ति । यथा, पूर्णाङ्कसरण्याः शून्यमूल्यं 0 भवति :
var numbers [5]int // 所有元素都是 0
Go भाषा बहुआयामी-सरणयः अपि समर्थयति । 2x3 पूर्णाङ्कसरण्याः घोषणायाः आरम्भस्य च उदाहरणं निम्नलिखितम् अस्ति ।
- var matrix [2][3]int
- matrix = [2][3]int{{1, 2, 3}, {4, 5, 6}}
यतः सरणीयाः दीर्घता नियतं भवति, अतः केषुचित् सन्दर्भेषु एतत् अतीव लचीलं न भवेत् । यदि भवन्तः चर-दीर्घतायाः संग्रहस्य आवश्यकतां अनुभवन्ति तर्हि भवन्तः स्लाइस् इत्यस्य उपयोगं कर्तुं शक्नुवन्ति ।
तदनन्तरं slice इति अधिकं लचीलः अन्तर्निर्मितप्रकारः अस्ति यः गतिशीलः सरणी इति चिन्तयितुं शक्यते । स्लाइस् इत्यस्य दीर्घता परिवर्तनशीलं भवति तथा च एतत् सरणीयाः आधारेण निर्मितं भवति, येन अधिका सुविधा भवति । अत्र स्लाइस् कथं घोषयितुं आरभ्यते च इति दर्शितम् अस्ति ।
- s := make([]int, 3) // 创建一个长度为3的整型切片
- s[0] = 1 // 切片元素赋值
- s[1] = 2
- s[2] = 3
- s = append(s, 4) // 向切片追加元素
Go भाषायां यद्यपि एरेस् तथा स्लाइस् इत्येतयोः उपयोगः समानप्रकारस्य तत्त्वानां श्रृङ्खलायाः संग्रहणार्थं भवति तथापि तेषु स्मृतिविनियोगे, आकारविविधतायां, उपयोगे च महत्त्वपूर्णः अन्तरः भवति अत्र एरेस् तथा स्लाइस् इत्येतयोः मुख्यभेदाः सन्ति ।
[3]int
तथा[4]int
भिन्नप्रकाराः सन्ति।[]int
सर्वेषां पूर्णाङ्कस्लाइस् कृते सामान्यः प्रकारः अस्ति ।make
आरम्भं कर्तुं सरणीतः कार्यं वा स्लाइस् वा, कोऽपि आकारः निर्दिष्टः नास्ति ।अत्र एरेस् तथा स्लाइस् इत्येतयोः कृते आरम्भीकरणस्य उदाहरणानि सन्ति ।
- // 数组
- var arr [3]int = [3]int{1, 2, 3}
-
- // 切片
- var slice []int = []int{1, 2, 3}
- // 或者使用 make 函数
- slice := make([]int, 3)
append
फंक्शन् एलिमेण्ट्स् योजयति, अथवा स्लाइसिंग् ऑपरेशन्स् माध्यमेन उपस्लाइस् प्राप्नोति ।स्लाइस् इत्यस्य अन्तर्निहितः सरणी राशेः उपरि आवंटितः भवितुम् अर्हति, स्लाइस् तत्त्वानां अभिगमनस्य समयजटिलता अपि O(1) भवति, परन्तुappend
अन्तर्निहितस्य सरणीयाः पुनर्विनियोगस्य परिणामः भवितुम् अर्हति, यत् सामान्यतया O(n) क्रिया भवति ।अन्ते मानचित्रणं पश्यामः । नक्शा Go इत्यस्मिन् एकः सहयोगात्मकः सरणी अस्ति यः मूल्यानां कृते कीलानां नक्शाङ्कनं करोति । मानचित्रस्य कुञ्जिकाः समानतासञ्चालकेन समर्थिताः कोऽपि प्रकारः भवितुम् अर्हति, यथा पूर्णाङ्काः, प्लवमानबिन्दुसङ्ख्याः, स्ट्रिंग्, सूचकाः, अन्तरफलकाः (यावत् अन्तरफलकस्य अन्तः निहिताः मूल्यानि तुलनीयानि सन्ति), संरचनाः, सरणी च नक्शाङ्कितं मूल्यं कस्यापि प्रकारस्य भवितुम् अर्हति ।
नक्शां घोषयितुं वाक्यविन्यासः निम्नलिखितरूपेण अस्ति ।
var mapName map[keyType]valueType
यथा, कीलानि स्ट्रिंग् रूपेण मूल्यानि च पूर्णाङ्करूपेण युक्तं मानचित्रं घोषयन्तु :
var scores map[string]int
नक्शां घोषित्वा भवन्तः उत्तीर्णाः भवितुम् अर्हन्तिmake
function इत्यस्य आरम्भं कर्तुं अतः तस्य उपयोगः कर्तुं शक्यते:
scores = make(map[string]int)
वैकल्पिकरूपेण, भवान् लघुघोषणाम् उपयुज्य आरम्भं कर्तुं शक्नोति:
scores := make(map[string]int)
घोषणासमये आरम्भार्थं अक्षरशः अपि उपयोक्तुं शक्नुवन्ति:
- scores := map[string]int{
- "alice": 90,
- "bob": 85,
- "charlie": 88,
- }
scores["alice"] = 90
value := scores["alice"]
यदि कीलः नास्ति तर्हि तस्य मूल्यप्रकारस्य शून्यमूल्यं प्रत्यागमिष्यति ।
नक्शे कुञ्जी अस्ति वा इति परीक्षितुं भवान् अल्पविराम -ok idiom इत्यस्य उपयोगं कर्तुं शक्नोति:
- value, exists := scores["alice"]
- if exists {
- // 键存在
- } else {
- // 键不存在
- }
उपयुञ्जताम्delete
फंक्शन् नक्शातः कील-मूल्ययुगलं हर्तुं शक्नोति:
delete(scores, "alice")
यदि कीलकं नास्ति, .delete
कार्यं किमपि न करोति।
उपयुञ्जताम्for
एकः लूप् नक्शे सर्वाणि कील-मूल्ययुग्मानि भ्रमितुं शक्नोति:
- for key, value := range scores {
- fmt.Printf("%s: %dn", key, value)
- }
नक्शे शून्यं मूल्यं भवतिnil
.एकम्nil
नक्शे अन्तर्निहितदत्तांशसंरचना नास्ति तथा च तत्त्वानि योजयितुं न शक्नोति ।नक्शे तत्त्वानि योजयितुं पूर्वं भवद्भिः अवश्यमेव उपयोगः करणीयःmake
तस्य आरम्भं कुरुत।
भवन्तः अन्तर्निर्मितस्य उपयोगं कर्तुं शक्नुवन्तिlen
नक्शे कील-मूल्ययुग्मानां संख्यां प्राप्तुं कार्यं:
length := len(scores)
नक्शे कुञ्जीः कोऽपि तुलनीयः प्रकारः भवितुम् अर्हति, यथा पूर्णाङ्काः, प्लवमानबिन्दुसङ्ख्याः, स्ट्रिंग्, सूचकाः, अन्तरफलकाः (यावत् अन्तरफलकस्य अन्तः निहिताः मूल्यानि तुलनीयानि सन्ति), संरचनाः, सरणी इत्यादयः स्लाइस्, मैप्स्, फंक्शन्स् च नक्शाकुंजीरूपेण उपयोक्तुं न शक्यन्ते यतोहि एते प्रकाराः समानतातुलनायाः समर्थनं न कुर्वन्ति ।
गो भाषायां एरे, स्लाइस्, मैप्स् च त्रीणि सामान्यतया प्रयुक्तानि दत्तांशसंरचनानि सन्ति, येषु प्रत्येकस्य भिन्नानि लक्षणानि, विचाराः च सन्ति । अत्र केचन बिन्दवः सन्ति येषां प्रयोगे ध्यानं दातव्यम् ।
nil
, उपयोगात् पूर्वं आरम्भः करणीयः ।nil
,nil
कील-मूल्ययुग्मानां संग्रहणार्थं नक्शायाः उपयोगः न भवति तथा च उपयोगात् पूर्वं आरम्भः करणीयः ।delete
यत् कुञ्जी नास्ति तत् विलोपनेन दोषः न उत्पद्यते, परन्तु कीलः अस्ति वा इति परीक्षितुं सुरक्षितम् ।