“區塊鏈是一門集合密碼學、共識演算法、智能合約、超級賬本等多門技術的複雜性綜合學科。”尹正表示,區塊鏈培訓機構的師資品質及其對區塊鏈行業的認知水平參差不齊,普通消費者也無從考究。
Go語言主要用作伺服器端開發,其定位是用來開發“大型軟體”的,適合於很多程式員一起開發大型軟體,並且開發週期長,支援雲端運算的網路服務。Go語言能夠讓程式員快速開發,並且在軟體不斷的增長過程中,它能讓程式員更容易地進行維護和修改。它融合了傳統編譯型語言的高效性和指令碼語言的易用性和富於表達性。
golang 中有兩個記憶體配置機制 :new和make,二者有明顯區別.
new:new(T)分配了零值填充的T類型的記憶體空間,並且返回其地址,即一個*T類型的值。其自身是一個指標.可用於初始化任何類型
make: 返回一個有初始值(非零)的T類型,而不是*T,其只能用來初始化:slice,map和channel三種類型。
對比:
適用範圍:make 只能建立內建類型(slice map channel), new 則是可以對所有類型進行記憶體配置
傳回值: new 返回指標, make 返回引用
填儲值: new 填充零值, make 填充非零值
代碼:
package main
import (
"fmt"
"reflect"
)
type Books struct {
Title,
Content,
Author string
}
func main() {
a := new([]int)
fmt.Println(a)
//輸出&[],a本身是一個地址
b := make([]int, 1)
fmt.Println(b)
//輸出[0],b本身是一個slice對象,其內容預設為0
book1 := new(Books)
book1.Title = "this is book1 title"
book1.Content = "this is book1 content"
book1.Author = "this is book1 author"
book2 := Books{"this is book2 title", "this is book2 content", "this is book2 author"}
fmt.Println("book1:", book1, ",Type:", reflect.TypeOf(book1))
//book1: &{this is book1 title this is book1 content this is book1 author} ,Type: *main.Books
fmt.Println("book2:", book2, ",Type:", reflect.TypeOf(book2))
//book2: {this is book2 title this is book2 content this is book2 author} ,Type: main.Books
}
高能預警,兄弟連教育區塊鏈直播課程8月持續火爆來襲!
原價1188元的12節區塊鏈進階課程,現僅需1元!
還可免費領取《Go語言基礎實戰項目開發》與《Go語言進階實戰項目開發》教材兩本!!
限時限量!!先到先得!!
http://www.ydma.cn/open/course/24
關注兄弟連區塊鏈公眾號可以獲得更多區塊鏈技術乾貨!!!