久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      探討go中的var是否能初始化結(jié)構(gòu)體

      本文由go語言教程欄目給大家介紹關(guān)于golang中var是否可以初始化結(jié)構(gòu)體問題,希望對需要的朋友有所幫助!

      背景

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

      語法提前了解

      • string轉(zhuǎn)成int 在golang中使用strconv.Atoi方法
      • golang中方法的返回值可以有多個,這個跟java不一樣,例如map[id]這樣的方式,第一個返回值就是value,第二個返回值是bool類型,表示是否存在

      • 和java中json序列化的方式比較像,反序列化是json.Unmarshal方法,第一個參數(shù)是字節(jié)數(shù)組,第二個參數(shù)是序列化對象的"地址",要加一個&,序列化的方式j(luò)son.Marshal方法,注意這個方法返回的字節(jié)數(shù)組

      上面這個小節(jié)用的語法在下面的練習(xí)中是經(jīng)常用到的,小伙伴們可以簡單地記憶一下

      練習(xí)

      1.我們簡單地定義一個User類,用golang完成關(guān)于這個結(jié)構(gòu)體實例的增刪改查,我們定義一個結(jié)構(gòu)體如下所示,有三個屬性Id,Name,Age

      探討go中的var是否能初始化結(jié)構(gòu)體

      2.因為是在內(nèi)存中做增刪改查的,沒有用到數(shù)據(jù)庫的,所以我們要像java一樣定義一個全局變量,作為一個容器來保存數(shù)據(jù),如下圖源碼所示,我們使用關(guān)鍵字var定義一個全局變量map,并初始化一條記錄

      探討go中的var是否能初始化結(jié)構(gòu)體

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

      探討go中的var是否能初始化結(jié)構(gòu)體

      3.1 getUser方法主要的邏輯就是獲取傳遞的參數(shù)id,然后根據(jù)id去全局變量中獲取user基本信息

      探討go中的var是否能初始化結(jié)構(gòu)體

      3.2 saveUser我們處理POST請求,現(xiàn)在開發(fā)中一般傳遞過來的json數(shù)據(jù),我們解析json到對應(yīng),然后保存到我們?nèi)肿兞恐?/p>

      探討go中的var是否能初始化結(jié)構(gòu)體

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

      探討go中的var是否能初始化結(jié)構(gòu)體

      3.4 deleteUser就更加簡單了,直接刪除map中對應(yīng)的id就可以了

      探討go中的var是否能初始化結(jié)構(gòu)體

      測試

      1.getUser的測試

      探討go中的var是否能初始化結(jié)構(gòu)體

      2.saveUser的測試

      探討go中的var是否能初始化結(jié)構(gòu)體

      探討go中的var是否能初始化結(jié)構(gòu)體

      3.updateUser的測試

      探討go中的var是否能初始化結(jié)構(gòu)體

      探討go中的var是否能初始化結(jié)構(gòu)體

      4.

      探討go中的var是否能初始化結(jié)構(gòu)體

      小結(jié)

      本小節(jié)主要完成了在內(nèi)存中做增刪改查,其實如果你完全掌握golang的基本語法,你肯定會覺得很小兒科,不過這個沒有關(guān)系,有些新同學(xué)肯定也是有一點收獲的,如果你仔細(xì)看上面的代碼,你肯定會發(fā)現(xiàn)一些問題,你會發(fā)現(xiàn)我們解析參數(shù)的方式只有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方法來獲取參數(shù),這個在我們?nèi)粘9ぷ髦泻苡杏茫欠浅_z憾,golang 原生并不是支持這樣相對比較復(fù)雜的參數(shù)綁定工作的,這個我們將通過一個數(shù)據(jù)結(jié)構(gòu)Trie來解決這個問題

      源碼地址

      https://github.com/BazingaLyn/jarvis

      如果你喜歡本系列的入門教程,希望你能關(guān)注點贊收藏,素質(zhì)三連謝謝~

      彩蛋

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

      探討go中的var是否能初始化結(jié)構(gòu)體

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號