陣列變數的定義
我們先試一下只申明型別,不賦初值。這時編譯器會給陣列預設賦上「零值」。陣列的零值就是所有內部元素的零值。
package main
import
"fmt"
func main (
)
下面我們看看另外三種變數定義的形式, 效果都是一樣的
func main (
)var b =[10
]int
c :=[8
]int
fmt.
println
(a) fmt.
println
(b) fmt.
println
(c)}
陣列的訪問
使用下標來簡單操作一下陣列,這個陣列裡存的是數字的平方值
package main
import
"fmt"
func main (
) fmt.
println
(squares)
}
陣列的下標越界檢查(高階知識)
上面的**中我們注意到可以使用內建函式 len() 來直接獲取陣列的長度。陣列的長度是編譯期確定的,當我們使用 len() 函式訪問陣列的長度屬性時,編譯器在背後偷偷把它替換成了整數值。
package main
import
"fmt"
func main (
) a[
101]
=255
fmt.
println
(a)}
上面的**執行結果說明了 go 語言會對陣列訪問下標越界進行編譯器檢查。有乙個重要的問題是,如果下標是乙個變數,go 是如何檢查下標越界呢?變數需要在執行時才可以決定是否越界,go 是如何辦到的呢?
答案是 go 會在編譯後的**中插入下標越界檢查的邏輯,所以陣列的下標訪問效率是要打折扣的,比不得 c 語言的陣列訪問效能。
陣列賦值
package main
import
"fmt"
func main (
)var b [9]
int b =a
a[0]
=12345
fmt.
println
(a) fmt.
println
(b)}
從上面**的執行結果中可以看出賦值後兩個陣列並沒有共享內部元素。如果陣列的長度很大,那麼拷貝操作是有一定的開銷的,使用的時候一定需要注意。下面我們嘗試使用不同長度的陣列賦值會有什麼結果
package main
import
"fmt"
func main (
)var b [10]
int b =a
a[0]
=12345
fmt.
println
(a) fmt.
println
(b)}
可以看出不同長度的陣列之間賦值是禁止的,因為它們屬於不同的型別。
陣列的遍歷
陣列除了可以使用下標進行遍歷之外,還可以使用 range 關鍵字來遍歷,range 遍歷提供了下面兩種形式。
package main
import
"fmt"
func main (
)for index :=
range a
for index,value :=
range a
}
認識資料庫
資料庫 database 是用來對資料進行操作的工具。所謂的資料,是指在現實世界冗雜的資訊中,提取出的有效字段組合。隨著計算機的發展,對資料的操作也經歷傳統的手工記錄資料 檔案系統 資料庫的演變過程。根據處理資料量的大小,我們將資料庫分成大中小三類。目前廣泛使用的大型資料庫有ibm的db2和甲骨文的...
資料探勘 認識資料
越來越多的人認識到,資料對這個世界的影響越來越大,掌握資料就掌握了發言權。如何從資料中找到想要的知識,是得到資料之後最需要關心的。資料探勘,也是知識發現的過程。1 理解資料 現實世界中,各行各業每時每刻都在產生數量龐大的資料集,讓人眼花繚亂,應該怎樣理解和處理資料呢?資料集由資料物件組成,乙個資料物...
認識資料庫
崗位需求 大資料時代 被迫需求 存資料 資料庫是所有軟體體系中最核心的存在dba 資料庫 db,database 概念 資料倉儲,軟體,安裝在作業系統 window,linux,mac 之上的 作用 儲存資料 管理資料 dbms 資料庫管理系統 關係型資料庫 sql 非關係型資料庫 nosql no...