Golang基礎知識學習

變量創建

var <name> <type>
var name string = "Python編程時光" // 1

var (
    name string
    age int
    gender string
)// 2

name := "Python編程時光" //3
name, age := "wangbm", 28 // 4

變量分爲兩種 普通變量指針變量

普通變量,存放的是數據本身,而指針變量存放的是數據的地址。

切片

類似java中的arrayList。

// 聲明字符串切片
var strList []string

// 聲明整型切片
var numList []int

// 聲明一個空切片
var numListEmpty = []int{}

// make( []Type, size, cap )
// 類型(Type),長度(size),容量(cap)
import (
 "fmt"
)

func main() {
 a := make([]int, 2)
 b := make([]int, 2, 10)
 fmt.Println(a, b)
 fmt.Println(len(a), len(b))
 fmt.Println(cap(a), cap(b))
}

字典

類似Java中的Map
語法:map[KEY_TYPE]VALUE_TYPE

初始化

// 第一種方法
var scores map[string]int = map[string]int{"english": 80, "chinese": 85}

// 第二種方法
scores := map[string]int{"english": 80, "chinese": 85}

// 第三種方法
scores := make(map[string]int)
scores["english"] = 80
scores["chinese"] = 85

判斷key是否存在

import "fmt"

func main() {
    scores := map[string]int{"english": 80, "chinese": 85}
    if math, ok := scores["math"]; ok {
        fmt.Printf("math 的值是: %d", math)
    } else {
        fmt.Println("math 不存在")
    }
}

對字典進行循環

import "fmt"

func main() {
    scores := map[string]int{"english": 80, "chinese": 85}

    for subject, score := range scores {
        fmt.Printf("key: %s, value: %d\n", subject, score)
    }
}

指針

  • 普通變量:存數據值本身
  • 指針變量:存值的內存地址

Go 語言的取地址符是 &,放到一個變量前使用就會返回相應變量的內存地址。

如何使用指針

指針使用流程:

定義指針變量。
爲指針變量賦值。
訪問指針變量中指向地址的值。
在指針類型前面加上 * 號(前綴)來獲取指針所指向的內容。

上面的三段代碼中,指針的操作都離不開這兩個符號:

& :從一個普通變量中取得內存地址

:當在賦值操作值的右邊,是從一個指針變量中取得變量值,當*在賦值操作值的左邊,是指該指針指向的變量

// 定義普通變量
aint := 1
// 定義指針變量
ptr := &aint

// 創建指針
astr := new(string)
// 給指針賦值
*astr = "Go編程時光"

aint := 1
var bint *int  // 聲明一個指針
bint = &aint   // 初始化

package main

import "fmt"

func main() {
   var a int= 20   /* 聲明實際變量 */
   var ip *int        /* 聲明指針變量 */

   ip = &a  /* 指針變量的存儲地址 */

   fmt.Printf("a 變量的地址是: %x\n", &a  )

   /* 指針變量的存儲地址 */
   fmt.Printf("ip 變量儲存的指針地址: %x\n", ip )

   /* 使用指針訪問值 */
   fmt.Printf("*ip 變量的值: %d\n", *ip )
}
//答案:
//a 變量的地址是: 20818a220
//ip 變量儲存的指針地址: 20818a220
//*ip 變量的值: 20

if-else

if 條件 1 {
  分支 1
} else if 條件 2 {
  分支 2
} else if 條件 ... {
  分支 ...
} else {
  分支 else
}

import "fmt"

func main() {
    age := 20
    if age > 18 {
        fmt.Println("已經成年了")
    }
}

for 循環

for [condition |  ( init; condition; increment ) | Range]
{
   statement(s);
}

a := 1
for a <= 5 {
    fmt.Println(a)
    a ++
}

import "fmt"

func main() {
    for i := 1; i <= 5; i++ {
        fmt.Println(i)
    }
}

// 不接表達式:無限循環
for {
    代碼塊
}

// 集合遍歷
import "fmt"

func main() {
    myarr := [...]string{"world", "python", "go"}
    for _, item := range myarr {
        fmt.Printf("hello, %s\n", item)
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章