日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在學(xué)習(xí)go語(yǔ)言的過程踩過的坑

馬哥Linux運(yùn)維 ? 來(lái)源:馬哥Linux運(yùn)維 ? 2024-11-11 09:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作為一個(gè)5年的phper,這兩年公司和個(gè)人都在順應(yīng)技術(shù)趨勢(shì),新項(xiàng)目慢慢從php轉(zhuǎn)向了go語(yǔ)言,從2021年到現(xiàn)在,筆者手上也先后開發(fā)了兩個(gè)go項(xiàng)目。在學(xué)習(xí)go語(yǔ)言的過程中也學(xué)習(xí)并總結(jié)了一些相關(guān)的東西,這篇文章就分享下自己踩過的一些坑吧。

1、函數(shù)的寫法

問題:

func main()
{
fmt.Println("php是世界上最好的語(yǔ)言")
}

解決:
如上所示,這種函數(shù)的定義寫法,在go語(yǔ)言中是錯(cuò)誤的,就是 "{" 必須得和函數(shù)名在同一行。當(dāng)然,這種錯(cuò)誤在編輯器檢測(cè)語(yǔ)法的時(shí)候就會(huì)暴露出來(lái)了,正確寫法應(yīng)該如下所示:

func main() {
fmt.Println("php是世界上最好的語(yǔ)言")
}

2、map定義和初始化

問題:

func main() {
var m map[string]string
m["php"] = "世界上最好的語(yǔ)言"
m["go"]  = "世界上最好的語(yǔ)言"
fmt.Println(m)
}

解決:
如上所示,這種定義了map,然后直接使用的方式是錯(cuò)誤的,會(huì)拋出一個(gè)panic。少了一個(gè)重要的步驟,必須使用make()函數(shù)去給map分配內(nèi)存空間,才能使用。這個(gè)對(duì)于phper來(lái)說(shuō),剛開始可能會(huì)經(jīng)常忘掉。正確使用方式如下:

func main() {
m := make(map[string]string, 2)
m["php"] = "世界上最好的語(yǔ)言"
m["go"]  = "世界上最好的語(yǔ)言"
fmt.Println(m)
}

3、json格式轉(zhuǎn)換

問題:

type Student struct {
id    int
name  string
score int
}

func main() {
s := Student{1, "小明", 99}
jsonS, _ := json.Marshal(s)
fmt.Println(string(jsonS))
}

解決:
在做web開發(fā)過程中,基本上每天都要和json格式數(shù)據(jù)打交道,所以學(xué)會(huì)轉(zhuǎn)換成json格式的數(shù)據(jù)是必備技能啊。但上面的寫法是錯(cuò)誤的,打印出來(lái)的為空值。這是因?yàn)镾tudent結(jié)構(gòu)體中的元素都是小寫的,對(duì)外是不可訪問的,所以必須改成大寫的,才能對(duì)外輸出json格式的數(shù)據(jù)。正確寫法如下:

type Student struct {
Id    int
Name  string
Score int
}

func main() {
s := Student{1, "小明", 99}
jsonS, _ := json.Marshal(s)
fmt.Println(string(jsonS))
}

4、循環(huán)中處理業(yè)務(wù)問題

問題:

func main() {
data := []int{1, 2, 3}
for _, value := range data {
value += 1
}
fmt.Println(data)
}

解決:
如上所示,我們本身是想對(duì)data里面的元素做加1操作的,但發(fā)現(xiàn)沒有成功。那是因?yàn)?,我們循環(huán)所引用的變量是臨時(shí)變量,去修改的時(shí)候并不會(huì)改變數(shù)組中的原有結(jié)構(gòu)。正確的做法應(yīng)該是根據(jù)切片的索引去修改,其實(shí)就類似于php的foreach,改變數(shù)組中的值,也是需要根據(jù)索引去改的。如下所示:

func main() {
data := []int{1, 2, 3}
for key := range data {
data[key] += 1
}
fmt.Println(data)
}

5、數(shù)組和切片的區(qū)別

問題:

func change(data [2]int) {
data[0] = 4
}

func main() {
data := [2]int{1, 2}
change(data)
fmt.Println(data)
}

解決:
如上所示,運(yùn)行的結(jié)果是[1 2] ,而不是[4 2] 。原因是main方法中聲明的data是數(shù)組,而go語(yǔ)言中的參數(shù)傳遞是值傳遞,所以不會(huì)改變?cè)械臄?shù)組值。如果需要實(shí)現(xiàn)上述效果,可以改用切片,因?yàn)榍衅旧聿粫?huì)存儲(chǔ)數(shù)據(jù),他的底層數(shù)據(jù)會(huì)指向一個(gè)底層數(shù)組,因此在修改切片的元素時(shí),會(huì)修改底層數(shù)組的相應(yīng)元素,同時(shí)共享同一個(gè)底層數(shù)組的切片也會(huì)相應(yīng)修改。正確做法如下所示:

func change(data []int) {
data[0] = 4
}

func main() {
data := []int{1, 2}
change(data)
fmt.Println(data)
}

6、:= 聲明和初始化變量

問題:

func main() {
flag := 1
if true {
flag := 2
flag++
}
fmt.Println(flag)
}

解決:
如上所示,運(yùn)行結(jié)果仍然是1,而不是2或者3。上述代碼中,flag := 2,又重新聲明了一個(gè)變量flag,但它作用的僅僅是if 判斷邏輯里面的,并沒有作用到整個(gè)main函數(shù)全局中。如果要正確影響,應(yīng)將 := 改為 =,如下所示,結(jié)果則為3:

func main() {
flag := 1
if true {
flag = 2
flag++
}
fmt.Println(flag)
}

總結(jié):以上,就是本人在實(shí)際開發(fā)中,結(jié)合自己所學(xué),遇到的一些比較常見的坑點(diǎn)了。當(dāng)然,也是比較基礎(chǔ)的一些點(diǎn)。后面,我也會(huì)繼續(xù)深入學(xué)習(xí)go,總結(jié)更多的經(jīng)驗(yàn)!

一個(gè)人可以被毀滅,但不可以被打敗。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4422

    瀏覽量

    67869
  • go語(yǔ)言
    +關(guān)注

    關(guān)注

    1

    文章

    159

    瀏覽量

    9851

原文標(biāo)題:go新手常踩的坑

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    實(shí)測(cè)不!羅德與施瓦茨FSP3,射頻發(fā)燒黨的剛需主力機(jī)

    玩射頻也有好幾年了,從入門級(jí)的入門機(jī)型換到中高端旗艦,不少,也摸過不少經(jīng)典款。今天就來(lái)聊聊我自用大半年的羅德與施瓦茨FSP3,實(shí)打?qū)嵉膶?shí)測(cè)感受,沒有虛標(biāo)吹捧,全是發(fā)燒黨關(guān)心的干貨,適合剛?cè)?/div>
    的頭像 發(fā)表于 04-25 15:11 ?632次閱讀
    實(shí)測(cè)不<b class='flag-5'>踩</b><b class='flag-5'>坑</b>!羅德與施瓦茨FSP3,射頻發(fā)燒黨的剛需主力機(jī)

    光耦失效的N種現(xiàn)場(chǎng)!工程師都

    在電子電路設(shè)計(jì)中,光電耦合器(光耦)憑借電氣隔離、信號(hào)傳輸、抗干擾等核心優(yōu)勢(shì),成為電源、工控、汽車電子、醫(yī)療設(shè)備等領(lǐng)域不可或缺的基礎(chǔ)器件。它看似結(jié)構(gòu)簡(jiǎn)單、應(yīng)用便捷,卻藏著無(wú)數(shù)容易被忽略的“陷阱”,幾乎每位硬件工程師都在光耦上過失效的。
    的頭像 發(fā)表于 04-23 11:18 ?239次閱讀
    光耦失效的N種現(xiàn)場(chǎng)!工程師都<b class='flag-5'>踩</b><b class='flag-5'>過</b>的<b class='flag-5'>坑</b>

    BSP調(diào)試#05:MIPI DSI(RK3588)

    ?? 本合集的是我當(dāng)初調(diào)試 RK3588 平臺(tái)時(shí)的 原始筆記 ——只保留了那些的問題接口,沒出過問題的內(nèi)容全刪掉了。文章框架如下: 其中, “調(diào)試過程” 章節(jié)可能有點(diǎn)意思(記錄了
    的頭像 發(fā)表于 04-17 11:54 ?7747次閱讀
    BSP調(diào)試#05:MIPI DSI(RK3588)

    深耕電路板加工8年,從到精通,這些實(shí)操經(jīng)驗(yàn)幫你少走90%彎路

    大家好,從事電路板(PCB)加工行業(yè)整整13年,從最初跟著師傅學(xué)習(xí)的學(xué)徒,到現(xiàn)在能獨(dú)立負(fù)責(zé)從樣品打樣到批量量產(chǎn)的全流程,期間、總結(jié)的經(jīng)驗(yàn),今天一次性分享給大家——無(wú)論你是剛?cè)胄?/div>
    發(fā)表于 04-16 09:31

    PCB顏色選購(gòu)避指南:別再被&quot;黑色高端&quot;忽悠了!

    做硬件這么多年,發(fā)現(xiàn)很多新手甚至部分老工程師選PCB顏色都:覺得黑色更高端、藍(lán)色更好看、紫色更個(gè)性,結(jié)果投產(chǎn)之后要么良率暴跌,要么成本翻倍,最后還是老老實(shí)實(shí)換回綠色。今天就把PCB顏色選擇的底層邏輯說(shuō)透,看完再也不會(huì)
    的頭像 發(fā)表于 03-26 14:06 ?191次閱讀

    N溝道 vs P溝道MOS管,怎么選才不?一文搞懂選型關(guān)鍵

    ”隱患。很多人選型時(shí)只看參數(shù),忽略溝道類型的核心差異,最終返工、調(diào)試反復(fù)。今天就從原理、場(chǎng)景、選型技巧三方面,幫你徹底理清兩者的區(qū)別,選對(duì)不。 一、先搞懂核心差異:原理層面的本
    的頭像 發(fā)表于 03-18 08:47 ?1156次閱讀
    N溝道 vs P溝道MOS管,怎么選才不<b class='flag-5'>踩</b><b class='flag-5'>坑</b>?一文搞懂選型關(guān)鍵

    從零開始做嵌入式數(shù)字時(shí)鐘,我的三個(gè)大坑

    作為一名剛完成嵌入式數(shù)字時(shí)鐘項(xiàng)目的開發(fā),回顧這段經(jīng)歷,真是一邊一邊成長(zhǎng)。這個(gè)項(xiàng)目看似簡(jiǎn)單——不就是顯示個(gè)時(shí)間嗎?實(shí)際動(dòng)手才發(fā)現(xiàn),從“能跑”到“準(zhǔn)時(shí)報(bào)時(shí)”,中間隔著好幾個(gè)不眠之夜。今天就把我真實(shí)
    的頭像 發(fā)表于 03-06 10:49 ?218次閱讀
    從零開始做嵌入式數(shù)字時(shí)鐘,我<b class='flag-5'>踩</b><b class='flag-5'>過</b>的三個(gè)大坑

    到高效落地:關(guān)鍵詞搜索淘寶天貓商品列表 API 的實(shí)操心得

    到高效落地:關(guān)鍵詞搜索淘寶天貓商品列表 API 的實(shí)操心得 (適合做:選品、比價(jià)、代購(gòu)集運(yùn)、店鋪上貨、數(shù)據(jù)分析、返利工具的同學(xué)直接落地) 一、開篇:為什么 90% 的人都會(huì)卡在「關(guān)鍵詞搜索
    的頭像 發(fā)表于 02-28 14:22 ?1529次閱讀

    K8s生產(chǎn)環(huán)境10大記錄復(fù)盤

    這篇文章記錄了我這些年在 K8s 生產(chǎn)環(huán)境。每一個(gè)案例都是血淚教訓(xùn),有些甚至導(dǎo)致了生產(chǎn)事故。希望通過分享這些經(jīng)歷,能幫助大家避免重蹈覆轍。
    的頭像 發(fā)表于 02-05 15:51 ?728次閱讀

    記ESP32CAM解決指南,已反映商家

    中國(guó)香河英茂科工沒有一個(gè)鴨蛋是白吃的,沒有一分錢融資是百花的,都轉(zhuǎn)化為科技成果----記ESP32CAM解決指南,已反映商家 https://user.qzone.qq.com/382905282/blog/1770127464
    發(fā)表于 02-03 22:23

    智能工廠改造?有人物聯(lián)網(wǎng)手把手教你挑對(duì)系統(tǒng)

    中小工廠砸?guī)资f(wàn)搞智能改造,結(jié)果了最冤的:花 “智慧工廠系統(tǒng)” 的錢,買的只是個(gè) “升級(jí)款工廠監(jiān)控系統(tǒng)”—— 只能看設(shè)備轉(zhuǎn)不轉(zhuǎn),沒法調(diào)生產(chǎn)、降能耗,錢直接打了水漂。智能改造選系統(tǒng),真的像開盲盒
    的頭像 發(fā)表于 12-19 14:20 ?437次閱讀
    智能工廠改造<b class='flag-5'>踩</b><b class='flag-5'>坑</b>?有人物聯(lián)網(wǎng)手把手教你挑對(duì)系統(tǒng)

    工業(yè)電子EMC整改:工業(yè)場(chǎng)景下90%工程師的雷區(qū)

    工業(yè)電子EMC整改:工業(yè)場(chǎng)景下90%工程師的雷區(qū)|深圳南柯電子
    的頭像 發(fā)表于 12-16 10:07 ?473次閱讀

    STM32 5 個(gè)容易的外設(shè)使用技巧

    STM32是嵌入式開發(fā)領(lǐng)域的熱門MCU,功能豐富到幾乎可以完成所有常見控制任務(wù):GPIO、ADC、UART、定時(shí)器、DMA……應(yīng)有盡有。但是,正因?yàn)楣δ軓?qiáng)大,開發(fā)中的機(jī)會(huì)也隨之增多。很多初學(xué)者
    的頭像 發(fā)表于 11-24 19:04 ?989次閱讀
    STM32 5 個(gè)容易<b class='flag-5'>踩</b><b class='flag-5'>坑</b>的外設(shè)使用技巧

    JLink、RV Debugger及串口下載使用體驗(yàn)和

    自己搭配調(diào)試器或串口工具來(lái)進(jìn)行,雖然造成了一定麻煩,卻也是學(xué)習(xí))的好機(jī)會(huì)。 以下將以調(diào)試器為順序,簡(jiǎn)單敘述使用感受及過程
    發(fā)表于 11-05 12:04

    UWB自動(dòng)跟隨技術(shù)原理、算法融合優(yōu)化和實(shí)錄

    UWB為什么是最靠譜的自動(dòng)跟隨技術(shù)?原理是什么?需要做什么算法融合、優(yōu)化?我們?cè)陂_發(fā)過程。
    的頭像 發(fā)表于 08-14 17:45 ?1809次閱讀
    UWB自動(dòng)跟隨技術(shù)原理、算法融合優(yōu)化和<b class='flag-5'>踩</b><b class='flag-5'>坑</b>實(shí)錄
    华阴市| 休宁县| 洛隆县| 兴业县| 龙岩市| 广宁县| 长宁县| 措勤县| 文化| 延庆县| 榆社县| 山丹县| 木里| 绍兴县| 绥阳县| 全南县| 潞西市| 乐亭县| 报价| 勐海县| 明溪县| 章丘市| 西乌珠穆沁旗| 玉门市| 于都县| 巴青县| 全椒县| 屏东县| 汤阴县| 龙胜| 沽源县| 永泰县| 榆林市| 贵港市| 玉环县| 罗城| 进贤县| 咸宁市| 拜泉县| 津市市| 新巴尔虎左旗|