18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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ǔ)言的過(guò)程踩過(guò)的坑

馬哥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)在,筆者手上也先后開(kāi)發(fā)了兩個(gè)go項(xiàng)目。在學(xué)習(xí)go語(yǔ)言的過(guò)程中也學(xué)習(xí)并總結(jié)了一些相關(guān)的東西,這篇文章就分享下自己踩過(guò)的一些坑吧。

1、函數(shù)的寫法

問(wèn)題:

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定義和初始化

問(wèn)題:

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ō),剛開(kāi)始可能會(huì)經(jīng)常忘掉。正確使用方式如下:

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

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

問(wè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開(kāi)發(fā)過(guò)程中,基本上每天都要和json格式數(shù)據(jù)打交道,所以學(xué)會(huì)轉(zhuǎn)換成json格式的數(shù)據(jù)是必備技能啊。但上面的寫法是錯(cuò)誤的,打印出來(lái)的為空值。這是因?yàn)镾tudent結(jié)構(gòu)體中的元素都是小寫的,對(duì)外是不可訪問(wèn)的,所以必須改成大寫的,才能對(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ù)問(wèn)題

問(wèn)題:

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

解決:
如上所示,我們本身是想對(duì)data里面的元素做加1操作的,但發(fā)現(xiàn)沒(méi)有成功。那是因?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ū)別

問(wèn)題:

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、:= 聲明和初始化變量

問(wèn)題:

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

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

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

總結(jié):以上,就是本人在實(shí)際開(kāi)發(fā)中,結(jié)合自己所學(xué),遇到的一些比較常見(jiàn)的坑點(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ī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4401

    瀏覽量

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

    關(guān)注

    1

    文章

    159

    瀏覽量

    9547

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    如何基于Nginx構(gòu)建微服務(wù)網(wǎng)關(guān)

    今天,我將分享我們團(tuán)隊(duì)如何基于Nginx構(gòu)建了一個(gè)日均處理10億+請(qǐng)求的微服務(wù)網(wǎng)關(guān),以及過(guò)的那些。這套方案已經(jīng)穩(wěn)定運(yùn)行2年+,經(jīng)歷過(guò)多次大促考驗(yàn)。
    的頭像 發(fā)表于 09-02 16:29 ?516次閱讀

    BNC公頭連接器:工廠教你選對(duì)、用好、不

    告訴大家:買 BNC 公頭別只看價(jià)格,要先看 “適配性”“標(biāo)準(zhǔn)度”“場(chǎng)景匹配度”,如果拿不準(zhǔn),就找我們這些 “天天和公頭打交道的人” 聊聊,我們能幫你少很多。
    的頭像 發(fā)表于 08-29 15:18 ?668次閱讀
    BNC公頭連接器:工廠教你選對(duì)、用好、不<b class='flag-5'>踩</b><b class='flag-5'>坑</b>

    京東比價(jià)項(xiàng)目開(kāi)發(fā)實(shí)錄:京東API接口(2025)

    這些年過(guò)、寫過(guò)的代碼,都成了寶貴的經(jīng)驗(yàn)。如果有遇到其他問(wèn)題都可以一起交流! ?
    的頭像 發(fā)表于 08-22 09:53 ?520次閱讀
    京東比價(jià)項(xiàng)目開(kāi)發(fā)實(shí)錄:京東API接口(2025)

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

    UWB為什么是最靠譜的自動(dòng)跟隨技術(shù)?原理是什么?需要做什么算法融合、優(yōu)化?我們?cè)陂_(kāi)發(fā)過(guò)程過(guò)。
    的頭像 發(fā)表于 08-14 17:45 ?920次閱讀
    UWB自動(dòng)跟隨技術(shù)原理、算法融合優(yōu)化和<b class='flag-5'>踩</b><b class='flag-5'>坑</b>實(shí)錄

    車企在海外過(guò) 磁性元器件企業(yè)要注意

    元器件行業(yè)協(xié)會(huì)第三屆九次理事會(huì)擴(kuò)大會(huì)議上分享的汽車出海經(jīng)驗(yàn),看似講的是汽車圈的事兒,實(shí)則一本是給磁性元器件行業(yè)的一本“避指南”,揭開(kāi)全球市場(chǎng)的真實(shí)面貌——這里不僅有誘人的市場(chǎng)紅利,更遍布著需要謹(jǐn)慎應(yīng)對(duì)的風(fēng)險(xiǎn)
    的頭像 發(fā)表于 07-24 13:34 ?308次閱讀
    車企在海外<b class='flag-5'>踩</b><b class='flag-5'>過(guò)</b>的<b class='flag-5'>坑</b> 磁性元器件企業(yè)要注意

    PLC工業(yè)智能網(wǎng)關(guān):功能解析、場(chǎng)景落地與選型避攻略

    如何避免選型?本文從技術(shù)原理、核心價(jià)值、典型場(chǎng)景、避指南四大維度,結(jié)合真實(shí)案例與行業(yè)趨勢(shì),為您徹底拆解PLC工業(yè)智能網(wǎng)關(guān)的“真面目”。
    的頭像 發(fā)表于 07-16 13:21 ?333次閱讀
    PLC工業(yè)智能網(wǎng)關(guān):功能解析、場(chǎng)景落地與選型避<b class='flag-5'>坑</b>攻略

    使用Word/Excel管理需求的10個(gè)痛點(diǎn)及解決方案Perforce ALM

    還在用Word/Excel做需求管理?10個(gè)“翻車信號(hào)”,都是小伙伴們過(guò)~來(lái)看看你過(guò)哪些?是不是也該升級(jí)到更專業(yè)的ALM工具了~
    的頭像 發(fā)表于 07-10 15:59 ?412次閱讀
    使用Word/Excel管理需求的10個(gè)痛點(diǎn)及解決方案Perforce ALM

    2025年G口大帶寬服務(wù)器選購(gòu)指南:避這3點(diǎn),省下50%成本!

    面對(duì)市場(chǎng)上琳瑯滿目的服務(wù)器產(chǎn)品,如何避免、實(shí)現(xiàn)成本與性能的平衡,成為企業(yè)和個(gè)人用戶關(guān)注的焦點(diǎn)。本文將從配置需求、避要點(diǎn)、成本控制三大維度,為您提供一份客觀、簡(jiǎn)潔的2025年G口大帶寬服務(wù)器選購(gòu)指南。
    的頭像 發(fā)表于 07-10 10:17 ?1055次閱讀

    HarmonyOS:路由跳轉(zhuǎn)

    背景 ** 隨著華為純血版HarmonyOS NEXT的推出,鴻蒙系統(tǒng)脫離安卓的日子越來(lái)越近了。作為車企大廠的我們當(dāng)然要第一時(shí)間學(xué)習(xí)鴻蒙開(kāi)發(fā),提前做好技術(shù)儲(chǔ)備,為日后鴻蒙應(yīng)用的開(kāi)發(fā)做好準(zhǔn)備工作。于是
    的頭像 發(fā)表于 06-09 15:29 ?308次閱讀

    必看!15個(gè)C語(yǔ)言常見(jiàn)陷阱及避指南

    ? C語(yǔ)言雖強(qiáng)大,但隱藏的“”也不少!稍不留神就會(huì)導(dǎo)致程序崩潰、數(shù)據(jù)異常。本文整理15個(gè)高頻陷阱,助你寫出更穩(wěn)健的代碼! ? 陷阱1:運(yùn)算符優(yōu)先級(jí)混淆? 問(wèn)題:運(yùn)算符優(yōu)先級(jí)不同可能導(dǎo)致計(jì)算順序錯(cuò)誤
    的頭像 發(fā)表于 03-16 12:10 ?1149次閱讀

    為什么學(xué)了C語(yǔ)言,卻寫不出像樣的項(xiàng)目?

    在學(xué)習(xí)編程的路上,C語(yǔ)言幾乎是每個(gè)程序員的“必修課”。不管你是打算從事嵌入式開(kāi)發(fā)、系統(tǒng)編程,還是想要深入理解操作系統(tǒng)的底層原理,C語(yǔ)言都是一塊重要的基石。然而許多人在學(xué)習(xí)C
    的頭像 發(fā)表于 03-14 17:37 ?591次閱讀
    為什么學(xué)了C<b class='flag-5'>語(yǔ)言</b>,卻寫不出像樣的項(xiàng)目?

    手機(jī)喇叭氣密性檢測(cè)儀選購(gòu)攻略,避免!

    參差不齊,質(zhì)量也良莠不齊。本文將為讀者提供一些選購(gòu)氣密性檢測(cè)儀的攻略,幫助企業(yè)在選擇設(shè)備時(shí)避免。首先,明確檢測(cè)需求是選購(gòu)氣密性檢測(cè)儀的前提。企業(yè)需要根據(jù)自身的生產(chǎn)規(guī)
    的頭像 發(fā)表于 02-05 17:04 ?890次閱讀
    手機(jī)喇叭氣密性檢測(cè)儀選購(gòu)攻略,避免<b class='flag-5'>踩</b><b class='flag-5'>坑</b>!

    自然語(yǔ)言處理與機(jī)器學(xué)習(xí)的關(guān)系 自然語(yǔ)言處理的基本概念及步驟

    自然語(yǔ)言處理(Natural Language Processing,簡(jiǎn)稱NLP)是人工智能和語(yǔ)言學(xué)領(lǐng)域的一個(gè)分支,它致力于研究如何讓計(jì)算機(jī)能夠理解、解釋和生成人類語(yǔ)言。機(jī)器學(xué)習(xí)(Ma
    的頭像 發(fā)表于 12-05 15:21 ?2369次閱讀

    ADC高速采樣電路設(shè)計(jì)詳解之STM32

    一、過(guò)程 最近用STM32F334做數(shù)字電源,用到了高速ADC采集電壓電流。設(shè)計(jì)的參考電壓VREF為3.3V,輸入信號(hào)經(jīng)運(yùn)放跟隨后直接接入單片機(jī)的采樣通道。一開(kāi)始測(cè)試一切正常,但隨著輸入信號(hào)
    的頭像 發(fā)表于 12-02 09:27 ?3722次閱讀
    ADC高速采樣電路設(shè)計(jì)詳解之STM32<b class='flag-5'>踩</b><b class='flag-5'>坑</b>

    go語(yǔ)言如何解決并發(fā)問(wèn)題

    作為一個(gè)后端開(kāi)發(fā),日常工作中接觸最多的兩門語(yǔ)言就是PHP和GO了。無(wú)可否認(rèn),PHP確實(shí)是最好的語(yǔ)言(手動(dòng)狗頭哈哈),寫起來(lái)真的很舒爽,沒(méi)有任何心智負(fù)擔(dān),字符串和整型壓根就不用區(qū)分,開(kāi)發(fā)速度真的是比
    的頭像 發(fā)表于 10-23 13:38 ?700次閱讀
    <b class='flag-5'>go</b><b class='flag-5'>語(yǔ)言</b>如何解決并發(fā)問(wèn)題