慕課網《Go實戰仿百度雲盤 實現企業級分散式雲端儲存系統》學習筆記 1
學習資料下載Go實戰仿百度雲盤 實現企業級分散式雲端儲存系統
一 應用場景描述
為什麼想著要學習一下Go語言?現在越來越多有名的開源專案都是使用Go語言開發的,所以瞭解一下Go語言的基礎知識還是很有必要的。平時的工作中主要使用Shell和Python來編寫運維指令碼。之前已經看過無數次關於Go語言的介紹和分享帖子了。對於Go語言這種效能僅次於C和C++的後起之秀,同時又比Python這種膠水語言效能提高不少。如果以後工作中如果有需要處理效能方面的問題就可以使用Go來編寫。
二 使用Go語言編寫的專案
目前比較出名的使用Go語言編寫的專案有:
Docker 開源容器
Open Falcon 小米的開源監控工具
Codis 豌豆莢的Redis解決方案,Codis的好幾個元件都是用Go語言編寫的
Ected 和ZooKeeper同類工具
Kubernetes 谷歌開源的容器排程工具
三 Go語言基礎學習
測試Go語言程式之前先安裝Go語言。
CentOS 使用yum -y install go安裝
1.列印Hello World!
package main
import "fmt"
func main(){
fmt.Println("hello world!")
}
go run hello-world.go
hello world!
go build hello-world.go
ls
hello-world hello-world.go
./hello-world
hello world!
2.賦值型別
package main
import "fmt"
func main() {
fmt.Println("go" + "lang")
fmt.Println("1+1 =",1+1)
fmt.Println("7.0/3.0 =",7.0/3.0)
fmt.Println(true&&false)
fmt.Println(true||false)
fmt.Println(!true)
}
go run values.go
golang
1+1 = 2
7.0/3.0 = 2.3333333333333335
false
true
false
3.變數
package main
import "fmt"
func main() {
var a string = "initial"
fmt.Println(a)
var b,c int = 1,2
fmt.Println(b,c)
var d=true
fmt.Println(d)
var e int
fmt.Println(e)
f := "short"
fmt.Println(f)
}
go run variable.go
initial
1 2
true
0
short
4.常量
package main
import "fmt"
import "math"
const s string = "constant"
func main() {
fmt.Println(s)
const n = 500000000
const d = 3e20 /n
fmt.Println(d)
fmt.Println(int64(d))
fmt.Println(math.Sin(n))
}
go run constant.go
constant
6e+11
600000000000
-0.2847040732381611
5.for迴圈
for語句是Go語言唯一的迴圈語句
package main
import "fmt"
func main() {
i :=1
for i <= 3 {
fmt.Println(i)
i = i+1
}
for j :=7;j <= 9; j++ {
fmt.Println(j)
}
for {
fmt.Println("loop")
break
}
}
go run for.go
1
2
3
7
8
9
loop
6.if/else語句
package main
import "fmt"
func main() {
if 7%2 == 0 {
fmt.Println("7 is even")
}else{
fmt.Println("7 is odd")
}
if 8%4 == 0 {
fmt.Println("8 is divisible by 4")
}
if num := 9;num < 0 {
fmt.Println(num,"is negative")
}else if num < 10 {
fmt.Println(num,"has 1 digit")
}else {
fmt.Println(num,"has multiple digits")
}
}
這裡注意else語句的語句不能寫成
}
else {
一定要寫成 }else { 這種形式
go run if.go
7 is odd
8 is divisible by 4
9 has 1 digit
7.switch語句
package main
import "fmt"
import "time"
func main() {
i :=2
fmt.Print("write",i," as ")
switch i {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
}
switch time.Now().Weekday() {
case time.Saturday, time.Sunday:
fmt.Println("it's the weekend")
default:
fmt.Println("it's a weekday")
}
t := time.Now()
switch{
case t.Hour() < 12:
fmt.Println("it's before noon")
default:
fmt.Println("it's after noon")
}
}
go run switch.go
write2 as two
it's a weekday
it's after noon
8.陣列
package main
import "fmt"
func main() {
var a [5]int
fmt.Println("emp:",a)
a[4] = 100
fmt.Println("set:",a)
fmt.Println("get:",a[4])
b := [5]int{1,2,3,4,5}
fmt.Println("dc1:",b)
var twoD [2][3]int
for i :=0;i < 2;i++ {
for j := 0; j < 3; j++ {
twoD[i][j] = i + j
}
}
fmt.Println("2d: ",twoD)
}
go run arrays.go
emp: [0 0 0 0 0]
set: [0 0 0 0 100]
get: 100
dc1: [1 2 3 4 5]
2d: [[0 1 2] [1 2 3]]
9.切片
相關文章
- 最新最全慕課網實戰教程-百度雲盤-破解視訊
- Android仿微信介面--使用Fragment實現(慕課網筆記)AndroidFragment筆記
- GlusterFS分散式儲存學習筆記分散式筆記
- 企業雲盤專業級分散式儲存伺服器分散式伺服器
- DDD實戰課(實戰篇)--學習筆記筆記
- 分散式系統學習筆記分散式筆記
- 雲端儲存及其分散式檔案系統分散式
- Zabbix 4.0企業級分散式監控實戰分散式
- go實現簡易分散式系統Go分散式
- 雲端儲存服務企業就在企業雲盤
- 分散式檔案系統HDFS,大資料儲存實戰(一)分散式大資料
- 如何實現企業雲盤資料化儲存
- 441-慕課網實戰課-神思者-441-Java企業級支付全家桶設計與實戰-388元-完結Java
- 分散式塊儲存系統Ursa的設計與實現分散式
- 分散式系統中資料儲存方案實踐分散式
- 【學習筆記之作業系統原理篇】儲存管理筆記作業系統
- go實戰web入門學習筆記GoWeb筆記
- 雲端計算學習路線教程大綱課堂筆記:構建企業級WIKI及工單系統筆記
- 哪些企業需要分散式式儲存?分散式
- 《Netty實戰》-學習筆記1Netty筆記
- GlusterFS企業分散式儲存【轉】分散式
- 學習筆記(2):go輕量級分散式與微服務-實現程式的訊號通訊2筆記Go分散式微服務
- 學習筆記:InnoDB儲存結構及多版本實現筆記
- 【大資料】BigTable分散式資料儲存系統分散式資料庫 | 複習筆記大資料分散式資料庫筆記
- 慕課網-LinuxC語言結構體-學習筆記LinuxC語言結構體筆記
- springcloud微服務實戰 學習筆記四 分散式配置中心SpringGCCloud微服務筆記分散式
- 大規模分散式儲存系統:原理解析與架構實戰分散式架構
- 大型分散式系統現場,阿里大牛帶你實戰分散式系統分散式阿里
- 【Go學習筆記13】介面和實現Go筆記
- 分散式系統中的資料儲存方案實踐分散式
- Linux企業實戰(五十六)——分散式檔案系統MFS(一)Linux分散式
- 企業級分散式儲存QingStor的競爭優勢分散式
- 分散式儲存系統的最佳實踐:系統發展路徑分散式
- Redis學習筆記(三)使用Lua指令碼實現分散式鎖Redis筆記指令碼分散式
- 作業系統——c++實現頁式虛擬儲存管理作業系統C++
- 慕課網的中國式線上“慕課”模式模式
- 慕課網《前端JavaScript面試技巧》學習筆記(2)-原型和原型鏈前端JavaScript面試筆記原型
- 為世界帶來和平的雲端儲存,企業網盤哪個好