Golang 基礎資料類型注意事項

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

基礎資料型別 (Elementary Data Type)

int型

根據平台不同而不同,但即使是int64 或int32 和 int並不同,需要轉換

 

浮點型

預設是float64

浮點數在進行比較的使用最好用math包的模組,用== 並不精確

import "math"math.Fdim(math.Fdim(f1,f2)<p) 

 

 

位元組類型

一個是byte代表的是uint8的別名,代表utf-8的一個位元組
一個是rune代表的是代表是單個Unicode字元uint32

 

 

數組

var a [32] byte;[2*N] struct { x, y int32 }[1000]*float64[3] [5] int[2][2][2] float64
數組的建立
for i, v := range array {    。。。}
數組的遍曆

 

切片

兩種建立方式:在數組上切片,新建立。

var my Array [10]int = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}var my Slice []int = my Array[:5]
在數組上切片
my Slice1 := make([]int, 5)my Slice2 := make([]int, 5, 10)   // 第一個是len(), 第二個是cap()my Slice3 := []int{1, 2, 3, 4, 5}
直接建立

切片的append用法

my Slice = append(my Slice, my Slice2...) // 注意第一個可以是列表,但是第二個必須是相應的資料類型,如果不是用...打散!
追加用法

切片有copy()方法,copy(slice1, slice2), 並且兩個切片len可以不同。在長度不同的情況下,複製部分

 

package mainimport "fmt"func add(a [] int) {    a[0] += 1}func addarray(a [4] int)  {    a[0] += 1}func addarray_pointer(a *[4] int)  {    a[0] += 1}func main() {    var arra [4] int  = [4] int {10,2,3,4}  // 數組    addarray(arra)    // 數組是實值型別    fmt.Println(arra)   // 這裡不變    addarray_pointer(&arra)      // 傳入數組指標    fmt.Println(arra)     // 這裡改變了    a := []int{1,2,3,4}    // 定義切片    add(a)    // 不能傳指標,且改變的是自身    fmt.Println(a[0])}
!切片不是實值型別,不能寫指標

 

 

 

 

 

Map類型

mymap  = make(map[string] PersonInfo)mymap = make(map[string] PerionInfo , 100)my Map = map[string] Person Info{  "1234": Person Info{"1", "Jack", "Room 101,..."},} 
建立方法
value, ok := my Map["1234"]if ok {    ... // 如果有ok為true否則為false}
取值
delete(mymap,"1234")
刪除
    var mymap map[string] int = map[string] int {"123":456,"233":445}    for i,k:= range mymap {        fmt.Println(i,k)    }
遍曆
mymap["113"] = 123
賦值

 map並不是實值型別,所以不能使用指標,函數傳遞是傳遞自身

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.