首頁 >後端開發 >Golang >探討go中的var是否能初始化結構體

探討go中的var是否能初始化結構體

藏色散人
藏色散人轉載
2021-11-30 15:48:172602瀏覽

本文由go語言教學欄位來介紹關於golang中var是否可以初始化結構體問題,希望對需要的朋友有幫助!

背景

上一篇小文章,簡單的用goland搭建一個最簡單的golang的demo,沒有什麼實際價值,用的golang語法也比較少,這個小節我們完成一個簡單的crud的操作,快速了解golang的一些常用的操作,能夠熟練掌握golang基本的語法

##語法提前了解

    string轉成int 在golang中使用strconv.Atoi方法

  • #golang中方法的回傳值可以有多個,這個跟java不一樣,例如map[id]這樣的方式,第一個回傳值就是value,第二個回傳值是bool型,表示是否存在

  • 和java中json序列化的方式比較像,反序列化是json.Unmarshal方法,第一個參數是位元組數組,第二個參數是序列化物件的

    "位址",要加一個&,序列化的方式json.Marshal方法,注意這個方法回傳的位元組數組

上面這個小節用的語法在下面的練習中是常用到的,小夥伴們可以簡單地記憶一下

練習

1.我們簡單地定義一個User類,用golang完成關於這個結構體實例的增刪改查,我們定義一個結構體如下所示,有三個屬性Id,Name,Age

探討go中的var是否能初始化結構體

2.因為是在記憶體中做增刪改查的,沒有用到資料庫的,所以我們要像java一樣定義一個全域變量,作為一個容器來保存數據,如下圖源碼所示,我們使用關鍵字var定義一個全域變數map,並初始化一筆記錄

探討go中的var是否能初始化結構體

3.然後定義四個"RequestMapping"如下所示

探討go中的var是否能初始化結構體

3.1 getUser方法主要的邏輯就是取得傳遞的參數id,然後根據id去全域變數中取得user基本資訊

探討go中的var是否能初始化結構體

3.2 saveUser我們處理POST請求,現在開發中一般傳遞過來的json數據,我們解析json到對應,然後保存到我們全局變數中

探討go中的var是否能初始化結構體

#3.3 updateUser和saveUpdate比較像,為了簡單,我們這邊只判斷如果全局map中對應的id存在的話,就變更這個id對應的user對象,就不進行屬性比較和替換了

探討go中的var是否能初始化結構體

3.4 deleteUser就更簡單了,直接刪除map中對應的id就可以了

探討go中的var是否能初始化結構體

測試

1.getUser的測試

探討go中的var是否能初始化結構體

2.saveUser的測試

探討go中的var是否能初始化結構體

探討go中的var是否能初始化結構體## 3.updateUser的測試

探討go中的var是否能初始化結構體

探討go中的var是否能初始化結構體#4.

探討go中的var是否能初始化結構體

#######4.############

小結

本小節主要完成了在記憶體中做增刪改查,其實如果你完全掌握golang的基本語法,你肯定會覺得很小兒科,不過這個沒有關係,有些新同學一定也是有一點收穫的,如果你仔細看上面的程式碼,你一定會發現一些問題,你會發現我們解析參數的方式只有2種,一種是localhost:9090/user?id=1這種取得id的方式,取得是取得post請求中的json,如果我們想像spring mvc中@requestMapping(value="/user/{name}/種是localhost:9090/user?id=1這種取得id的方式,獲取是獲取post請求中的json,如果我們想像spring mvc中@requestMapping(value="/user/{name}/{id}")這樣的方式就不行了,然後透過@pathvariable方法來獲取參數,這個在我們日常工作中很有用,但是非常遺憾,golang 原生並不是支持這樣相對比較複雜的參數綁定工作的,這個我們將通過一個數據結構Trie來解決這個問題

原始碼位址

https://github.com/BazingaLyn/jarvis

如果你喜歡本系列的入門教程,希望你能關注點讚收藏,素質三連謝謝~

彩蛋

如果你手敲程式碼的時候,你會發現(writer http.ResponseWriter, request *http.Request)需要寫很多遍,goland提供了快捷鍵快速生成方法了,但是每個人快捷鍵設定的可能不一樣,但是可以用如下的方式快速生成方法

探討go中的var是否能初始化結構體

以上是探討go中的var是否能初始化結構體的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除