<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
型別轉換語法:Type(expression)
型別斷言語法為:expression.(Type)
package main import "fmt" //典型的型別轉換範例 func main() { // 型別轉換範例 var a int = 5 var b int = 2 var c float32 c = float32(a) / float32(b) //這裡就是典型的型別轉換 fmt.Printf("a的型別:%Tn", a) fmt.Printf("b的型別:%Tn", b) fmt.Printf("c的型別:%Tn", c) fmt.Printf("c的值:%vn", c) //如果我們不進行型別轉換,看下輸出結果 fmt.Printf("不進行型別轉換的輸出結果:%vn", a/b) //從結果可以看出值為2,丟失了精度 }
列印結果
注意:對於型別斷言,expression 必須是介面型別
package main import "fmt" //經典的型別斷言範例 搭配switch使用 func main() { var x interface{} x = 1 switch x.(type) { //這就是上面說的expression.(Type) case float32: fmt.Println("型別是:float32") case string: fmt.Println("型別是:string") case int: fmt.Println("型別是:int") default: fmt.Println("未知型別") } }
執行結果
定義全域性變數必須用var,全域性變數要定義在函數之外,而在函數之外定義的變數只能用var定義。
這是官方對於init()函數的介紹:
變數除了可以在全域性宣告中初始化,也可以在 init ()函數中初始化。這是一類非常特殊的函數,它不能夠被人為呼叫,而是在每個包完成初始化後自動執行,並且執行優先順序比 main 函數高。 初始化總是以單執行緒執行,並且按照包的依賴關係順序執行。 一個可能的用途是在開始執行程式之前對資料進行檢驗或修復,以保證程式狀態的正確性。
如何覺得上面這一大段話不好理解的話,可以看我的總結:
Go語言中變數、init函數、main函數的執行順序
這是我在刷題的時候碰到的,總結出來給大家:
Go語言中的字串不支援下標操作
在go語言中,字串是一種基本型別,和其它開發語言不同,Go的字串是由單個位元組連線起來的。
Go語言統一使用utf-8編碼標識Unicode文字。當字元為ASCII編碼時,佔用1個位元組,其它字元佔用2到4個位元組,中文佔用3個位元組
有三種方法:
strings
中的 Replace()
方法範例程式碼
package main import ( "fmt" "strings" ) func main() { //第一種方法 將字串轉成byte切片 s := "hello" s2 := []byte(s) s2[0] = 'x' fmt.Printf("轉成byte切片:%vn", string(s2)) //列印結果:轉成byte切片:xello // 第二種方法 將字串轉為rune切片 s3 := "王中陽" s4 := []rune(s3) //注意:中文字串要進行修改,只能轉成rune切片,不能轉成byte切片 s4[0] = '楊' fmt.Printf("轉成rune切片:%vn", string(s4)) //列印結果:轉成rune切片:楊中陽 // 第三種方法,使用原生包strings 中的 Replace() 方法 s5 := "abcdef" old := "abc" newString := "ABC" s6 := strings.Replace(s5, old, newString, -1) //最後一個引數n的作用是:返回將s5中前n個不重疊old子串都替換為new的新字串,如果n<0會替換所有old子串。 fmt.Printf("strings替換之後的:%vn", s6) //列印結果:strings替換之後的:ABCdef }
執行結果
slice可以通過append方式實現元素的刪除。
**切片使用冒號分隔時遵循"前閉後開"原則,即包括前面的值,不包括後面的值。 **
package main import "fmt" //使用append 刪除單個元素 func main() { var data = []int{0, 1, 2, 3, 4, 5} //刪除元素2 index := 2 //切片使用冒號分隔時遵循"前閉後開"原則,即包括前面的值,不包括後面的值。 data1 := append(data[:index], data[index+1:]...) fmt.Println(data1) }
執行結果
package main import "fmt" //使用append 刪除多個元素 func main() { var data = []int{0, 1, 2, 3, 4, 5} //刪除元素0,1,2 index := 2 //切片使用冒號分隔時遵循"前閉後開"原則,即包括前面的值,不包括後面的值。 data1 := append(data[:0], data[index+1:]...) fmt.Println(data1) }
執行結果
這篇文章彙總了我再開發和刷面試題過程中遇到的容易搞錯的知識點,包括:
到此這篇關於Golang易錯知識點彙總的文章就介紹到這了,更多相關Golang知識點內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45