日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
探討go中的var是否能初始化結(jié)構(gòu)體

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

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、寧都網(wǎng)絡(luò)推廣、重慶小程序開(kāi)發(fā)公司、寧都網(wǎng)絡(luò)營(yíng)銷、寧都企業(yè)策劃、寧都品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供寧都建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com

背景

語(yǔ)法提前了解

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

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

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

練習(xí)

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

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

3.然后定義四個(gè)"RequestMapping"如下所示

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

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

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

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

測(cè)試

1.getUser的測(cè)試

2.saveUser的測(cè)試

3.updateUser的測(cè)試

4.

小結(jié)

本小節(jié)主要完成了在內(nèi)存中做增刪改查,其實(shí)如果你完全掌握golang的基本語(yǔ)法,你肯定會(huì)覺(jué)得很小兒科,不過(guò)這個(gè)沒(méi)有關(guān)系,有些新同學(xué)肯定也是有一點(diǎn)收獲的,如果你仔細(xì)看上面的代碼,你肯定會(huì)發(fā)現(xiàn)一些問(wèn)題,你會(huì)發(fā)現(xiàn)我們解析參數(shù)的方式只有2種,一種是localhost:9090/user?id=1這種獲取id的方式,獲取是獲取post請(qǐng)求中的json,如果我們想像spring mvc中@requestMapping(value="/user/{name}/種是localhost:9090/user?id=1這種獲取id的方式,獲取是獲取post請(qǐng)求中的json,如果我們想像spring mvc中@requestMapping(value="/user/{name}/{id}")這樣的方式就不行了,然后通過(guò)@pathvariable方法來(lái)獲取參數(shù),這個(gè)在我們?nèi)粘9ぷ髦泻苡杏?,但是非常遺憾,golang 原生并不是支持這樣相對(duì)比較復(fù)雜的參數(shù)綁定工作的,這個(gè)我們將通過(guò)一個(gè)數(shù)據(jù)結(jié)構(gòu)Trie來(lái)解決這個(gè)問(wèn)題

源碼地址

https://github.com/BazingaLyn/jarvis

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

彩蛋

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


當(dāng)前名稱:探討go中的var是否能初始化結(jié)構(gòu)體
URL分享:http://www.dlmjj.cn/article/codcosp.html