go語音基礎之append擴容特點
1、append擴容特點
示例:
package main //必須有個main包 import "fmt" func main() { //如果超過原來的容量,通常以2倍容量擴容 s := make([]int, 0, 1) //長度為0,容量為1 oldCap := cap(s) for i := 0; i < 20; i++ { s = append(s, i) if newCap := cap(s); oldCap < newCap { fmt.Printf("cap: %d ===> %d\n", oldCap, newCap) oldCap = newCap } } }
執行結果:
cap: 1 ===> 2 cap: 2 ===> 4 cap: 4 ===> 8 cap: 8 ===> 16 cap: 16 ===> 32
相關推薦
go語音基礎之append擴容特點
1、append擴容特點 示例: package main //必須有個main包 import "fmt" func main() { //如果超過原來的容量,通常以2倍容量擴容 s := make([]int, 0, 1) //長度為0,容量為1 oldCap := ca
go語音基礎之append函式的使用
1、append函式的使用 作用:在原切片的末尾新增元素 示例: package main //必須有個main包 import "fmt" func main() { s1 := []int{} fmt.Printf("len = %d, cap =
go語音基礎之append函數的使用
clas imp lse 末尾 light %d end ack 添加元素 1、append函數的使用 作用:在原切片的末尾添加元素 示例: package main //必須有個main包 import "fmt" func main() {
go語音基礎之閉包捕獲外部變數特點
1、閉包捕獲外部變數特點 示例: package main //必須 import "fmt" func main() { a := 10 str := "mike" func() { //閉包以引用方式捕獲外部變數 a = 666 str = "go"
go語音基礎之閉包的特點
所謂閉包就是一個函式“捕獲”了和它在同一作用域的其它常量和變數。這就意味著當閉包被呼叫的時候,不管在程式什麼地方呼叫,閉包能夠使用這些常量或者變數。它不關心這些捕獲了的變數和常量是否已經超出了作用域,所以只有閉包還在使用它,這些變數就還會存在。 1、閉包
go語音基礎之常量
err 有一個 int 執行 clas oat light println 修改 1、常量 示例: package main //必須有一個main包 import "fmt" func main() { //變量:程序運行期間,可以改變的量, 變量
go語音基礎之變量和常量
ack 聲明 2.0 port false 結果 類型 highlight pack 1、多個變量 示例1: package main import "fmt" func main() { //不同類型變量的聲明(定義) var a int
go語音基礎之變數和常量
1、多個變數 示例1: package main import "fmt" func main() { //不同型別變數的宣告(定義) var a int var b float64 a, b = 10, 3.14 fmt.Println("a = ", a)
go語音基礎之字符串類型 和 字符與字符串類型的區別
true div 字符串類 light UNC 只有一個 有一個 \n package 1、字符串類型 示例1: package main //必須有一個main包 import "fmt" func main() { var str1 string
go語音基礎之字串型別 和 字元與字串型別的區別
1、字串型別 示例1: package main //必須有一個main包 import "fmt" func main() { var str1 string str1 = "abc" fmt.Println("str1 = ", str1) } #執行結果
go語音基礎之輸入的使用
highlight pac 有一個 寫法 阻塞 printf sca clas () 1、輸入的使用 第一種寫法:fmt.Scanf("%d", &a) 第二種寫法:fmt.Scan(&a) 示例: package main //必須有一個mai
go語音基礎之型別轉換
1、型別轉換 示例: package main //必須有一個main包 import "fmt" func main() { //這種不能轉換的型別,叫不相容型別 var flag bool flag = true fmt.Printf("flag = %t\n", f
go語音基礎之流程控制 if語句
Go語言支援最基本的三種程式執行結構:順序結構、選擇結構、迴圈結構。 順序結構:程式按順序執行,不發生跳轉。 選擇結構:依據是否滿足條件,有選擇的執行相應功能。 迴圈結構:依據條件是否滿足,迴圈多次執行某段程式碼。 一、選擇結構 if 語句 示例1: 滿足條件 p
go語音基礎之流程控制 if語句
語言 初始 執行 滿足 clas ack 跳轉 brush 順序 Go語言支持最基本的三種程序運行結構:順序結構、選擇結構、循環結構。 順序結構:程序按順序執行,不發生跳轉。 選擇結構:依據是否滿足條件,有選擇的執行相應功能。 循環結構:依據條件是否滿足,循環多
go語音基礎之switch語句 和 fallthrough 用途
Go裡面switch預設相當於每個case最後帶有break,匹配成功後不會自動向下執行其他case,而是跳出整個switch, 但是可以使用fallthrough強制執行後面的case程式碼:示例1: package main import "fmt" func main() { n
go語音基礎之for迴圈
1、for 的用法 示例: package main //必須有一個main包 import "fmt" func main() { //for 初始化條件 ; 判斷條件 ; 條件變化 { //} //1+2+3 …… 100累加 sum := 0 /
go語音基礎之range的用法
一、range的用法 示例1: 傳統用法 package main //必須有一個main包 import "fmt" func main() { str := "abc" //通過for列印每個字元 for i := 0; i < len(str); i++
go語音基礎之for循環
import true 語音 port 累加 有一個 () pack i++ 1、for 的用法 示例: package main //必須有一個main包 import "fmt" func main() { //for 初始化條件 ; 判斷
go語音基礎之break和continue的區別
1、break和continue的區別 在迴圈裡面有兩個關鍵操作break和continue,break操作是跳出當前迴圈,continue是跳過本次迴圈。 2、break 備註:break可⽤於for、switch、select 示例: package main
go語音基礎之函式
一、函式 1、定義格式 函式構成程式碼執行的邏輯結構。在Go語言中,函式的基本組成為:關鍵字func、函式名、引數列表、返回值、函式體和返回語句。 Go 語言函式定義格式如下: func FuncName(/*引數列表*/) (o1 type1, o2 type2/*返回型別*/) {