91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么理解Go語言的map和指針

發布時間:2021-11-04 15:15:13 來源:億速云 閱讀:195 作者:iii 欄目:編程語言

本篇內容主要講解“怎么理解Go語言的map和指針”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么理解Go語言的map和指針”吧!

  示例:

  rec1 := make(map[string]int)

  rec1["width"] = 1

  rec1["height"] = 3

  以上兩種聲明和初始化方式效果是一樣的,根據實際情況選用。試試訪問不存在的Key看會怎樣?

  fmt.Println(rec["point"])

  結果會輸出:0,不會報錯!它返回了int的默認值:0。

  Key是否存在

  那怎么判斷一個Key到底是否存在呢?可如下實現:

  if val, ok := rec["point"]; ok {

  fmt.Println(val)

  } else {

  fmt.Println("key point not exists")

  }

  遍歷

  for k, v := range rec {

  fmt.Println(k, "=", v)

  }

  刪除Key

  delete(rec, "width")

  if val, ok := rec["width"]; ok {

  fmt.Println(val)

  } else {

  fmt.Println("key width has been deleted")

  }

  指針

  Go作者之一是Thompson,他發明了后來衍生出C語言的B程序語言,作為鼻祖,設計的新語言指針必須有。Go里的指針和C的指針語法使用上基本一樣,區別是Go里不能對指針進行算術運算。

  func pointers() {

  x := new(int)

  *x = 2

  fmt.Println(reflect.TypeOf(x), *x, x)

  y := 2

  fmt.Println(&y, reflect.TypeOf(&y), reflect.TypeOf(y))

  pointParam(&y)

  }

  func pointerParam(p *int) {

  fmt.Println(reflect.TypeOf(p), p, *p)

  }

  上面的new可以看成是C里面的malloc,為類型分配對應的內存空間,然后返回對應內存的指針即內存地址,new函數相當于下面的函數功效:

  func newInt() *int {

  var i int

  return &i

  }

  x := newInt()

到此,相信大家對“怎么理解Go語言的map和指針”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

札达县| 什邡市| 玉林市| 泗阳县| 自治县| 兴隆县| 宜昌市| 科技| 武邑县| 台北县| 金昌市| 章丘市| 宜昌市| 永春县| 石河子市| 博湖县| 九江市| 靖边县| 托克逊县| 博乐市| 祁门县| 安新县| 五指山市| 罗山县| 青田县| 保定市| 宾阳县| 湖北省| 军事| 贵溪市| 西乡县| 电白县| 邯郸县| 班玛县| 林口县| 澎湖县| 哈尔滨市| 铜梁县| 华蓥市| 保德县| 军事|