73 lines
2.2 KiB
Markdown
73 lines
2.2 KiB
Markdown
|
---
|
|||
|
title: Go Maps
|
|||
|
localeTitle: الذهاب خرائط
|
|||
|
---
|
|||
|
## الذهاب خرائط
|
|||
|
|
|||
|
خريطة تسمى " _قاموس"_ بلغات أخرى ، ومفاتيح "خرائط" للقيم. يتم الإعلان عن خريطة مثل هذا:
|
|||
|
|
|||
|
`var m map[Key]Value
|
|||
|
`
|
|||
|
|
|||
|
لا تحتوي هذه الخريطة على مفاتيح ولا يمكن إضافة مفاتيح إليها. لإنشاء خريطة ، استخدم وظيفة `make` :
|
|||
|
|
|||
|
`m = make(map[Key]Value)
|
|||
|
`
|
|||
|
|
|||
|
يمكن استخدام أي شيء كمفتاح أو كقيمة.
|
|||
|
|
|||
|
### تعديل الخرائط
|
|||
|
|
|||
|
في ما يلي بعض الإجراءات الشائعة في الخرائط.
|
|||
|
|
|||
|
#### إدخال / تغيير العناصر
|
|||
|
|
|||
|
إنشاء أو تغيير عنصر `foo` في الخريطة `m` :
|
|||
|
|
|||
|
`m["foo"] = bar
|
|||
|
`
|
|||
|
|
|||
|
#### الحصول على العناصر
|
|||
|
|
|||
|
احصل على عنصر مع مفتاح `foo` في الخريطة `m` :
|
|||
|
|
|||
|
`element = m["foo"]
|
|||
|
`
|
|||
|
|
|||
|
#### حذف العناصر
|
|||
|
|
|||
|
حذف عنصر مع مفتاح `foo` في الخريطة `m` :
|
|||
|
|
|||
|
`delete(m, "foo")
|
|||
|
`
|
|||
|
|
|||
|
#### تحقق مما إذا كان المفتاح قد تم استخدامه
|
|||
|
|
|||
|
تحقق من استخدام مفتاح `foo` في الخريطة `m` :
|
|||
|
|
|||
|
`element, ok = m["foo"]
|
|||
|
`
|
|||
|
|
|||
|
إذا كان `ok` `true` ، فقد تم استخدام المفتاح ويحمل `element` القيمة عند `m["foo"]` . إذا كان `ok` `false` ، فهذا يعني أن المفتاح لم يتم استخدامه وأن `element` يحتفظ بقيمه الصفرية.
|
|||
|
|
|||
|
### الخريطة حرفية
|
|||
|
|
|||
|
يمكنك إنشاء حرفيات الخرائط مباشرة:
|
|||
|
|
|||
|
`var m = map[string]bool{
|
|||
|
"Go": true,
|
|||
|
"JavaScript":false,
|
|||
|
}
|
|||
|
|
|||
|
m["Go"] // true
|
|||
|
m["JavaScript"] = true // Set Javascript to true
|
|||
|
delete(m, "JavaScript") // Delete "JavaScript" key and value
|
|||
|
language, ok = m["C++"] // ok is false, language is bool's zero-value (false)
|
|||
|
`
|
|||
|
|
|||
|
#### معلومات اكثر:
|
|||
|
|
|||
|
* [جولة في الذهاب](https://tour.golang.org/moretypes/19)
|
|||
|
* [الذهاب عن طريق المثال](https://gobyexample.com/maps)
|
|||
|
* [Golang كتاب](https://www.golang-book.com/books/intro/6#section3)
|
|||
|
* [مواصفات لغة برمجة Go](https://golang.org/ref/spec#Making_slices_maps_and_channels)
|