JavaScriptGolang

基本类型

类型长度说明
bool1对应JavaScript的Boolean
string对应JavaScript的String
(u)int4/832或64位
(u)int81-128 ~ 127, 0 ~ 255
(u)int162-32768 ~ 32767, 0 ~ 65535
(u)int324-2147483648 ~ 2147483647, 0 ~ 4294967295
(u)int648-9223372036854775808 ~ 9223372036854775807, 0 ~ 18446744073709551615
uintptr4/8存储指针的uint32或uint64整数
byte1uint8的别名
rune4int32的别名, Unicode码点
float324符合IEEE-754标准的32位浮点数
float648符合IEEE-754标准的64位浮点数
complex648具有float32实部和虚部的所有复数的集合
complex12816具有float64实部和虚部的所有复数的集合

数组

JavaScript
let a = [1, 2, 3]
Golang
var a = [3]int{1, 2, 3}
Golang
var a = [...]int{1, 2, 3}

切片

GolangJavaScriptJavaScriptGolang

数组是值类型,切片是在数组上面的一个‘View’,它指向一个数组的一段连续的内存。

初始化一个切片也很简单,直接去掉数组长度的声明就是切片

var a = []int{1, 2, 3}
make
var a = make([]int, 3)
var b = make([]int, 3, 6)
初始化一个长度为3的切片a;初始化一个长度为3,数组的容量为6的b。
Golang
len()cap()
JavaScriptArray.prototype.length
append()
JavaScriptpush()
[low:high]
JavaScriptArray.prototype.slice()

Map

JavaScriptMap

初始化Map需要声明类型

var a = map[string]string
var b = map[string]string {
  "foo": "Hello",
  "bar": "World"
}
make
var a = make(map[string]string)
delete()key

结构体

JavaScriptObject
type Person struct {
  name string
  age int
}

var a = Person{name: "allen", age: 30}
var b = Person{"allen", 30}
var c = new(Person)
c.name = "allen"
c.age = 30
new()Golang

欢迎关注我的公众号“野生程序员的修炼”,原创技术文章第一时间推送。