10.آموزش GO با مثال(آرایه maps)

مپ گونه ای از آرایه انجمی در زبان گو میباشد (در زبان های دیگر hashes یا dicts نامیده میشود).

package main
import "fmt"
func main() {

برای درست کردن یک مپ خالی از نحو زیر و تابع درونی make استفاده کنید:

" make(map[key-type]val-type)."

   m := make(map[string]int)

با استفاده از نحو name[key] = val تنظیمات کلید/مقدار را انجام دهید.

   m["k1"] = 7
    m["k2"] = 13

یه مپ رو میتونید با دستور fmt.Println نمایش بدید که هردو جفت کلید/مقدار رو نمایش میده.

   fmt.Println("map:", m)

برای به دست آوردن مقدار یک کلید [name[key:

   v1 := m["k1"]
    fmt.Println("v1: ", v1)

تابع درونی len تعداد جفت های کلید /مقدار را هنگامی که در مپ فراخوانی میشود را بر میگرداند.

   fmt.Println("len:", len(m))

تابع درونی delete جفت کلید/مقدار را از آرایه حذف میکند.

   delete(m, "k2")
    fmt.Println("map:", m)

برگشتی اختیاری دوم مقداری را برمیگرداند وقتی که مقداری رو از مپ بگیره اگر کلیدش در مپ وجود داشته باشه.این میتونه برای رفع ابهام بین کلید های گم شده و کلید های صفر مقدار شبیه 0 یا "" استفاده گردد. در اینجا ما به مقدارش کاری نداریم بنابراین اون رو با شناسه خالی _نادیده میگیریم.

   _, prs := m["k2"]
    fmt.Println("prs:", prs)

با این نحو شما میتونید یک مپ رو در یک خط تعریف و مقدار دهی اولیه کنید:

   n := map[string]int{"foo": 1, "bar": 2}
    fmt.Println("map:", n)
}

اجرای این برنامه

توجه داشته باشید که مپ ها به فرم [map[k:v k:vنمایش داده میشن وقتی که ما از دستور fmt.Printlnاستفاده کنیم.

$ go run maps.go 
map: map[k1:7 k2:13]
v1:  7
len: 2
map: map[k1:7]
prs: false
map: map[foo:1 bar:2]

<<آرایه های برشی -------------------------------------تکرار range>>