Go:JSON
JSON
json.Marshal()
默认转换规则:
1.布尔型转换为 JSON 后仍是布尔型 , 如 true -> true
2.浮点型和整数型转换后为 JSON 里面的常规数字,如 1.23 -> 1.23
3.字符串将以 UTF-8 编码转化输出为 Unicode 字符集的字符串,特殊字符比如<将会被转义为\u003c
默认转换规则:
1.布尔型转换为 JSON 后仍是布尔型 , 如 true -> true
2.浮点型和整数型转换后为 JSON 里面的常规数字,如 1.23 -> 1.23
3.字符串将以 UTF-8 编码转化输出为 Unicode 字符集的字符串,特殊字符比如<将会被转义为\u003c
| 函数 | 适用范围 | 返回值 | 填充值 |
|---|---|---|---|
| make() | 仅限创建类型(slice map channel) | 引用,make 返回复杂的结构为 slice 时:它是一个包含 3 个域的结构体:指向 slice 中第一个元素的指针,slice 的长度,以及 slice 的容量。 | 非零值,make(T, args)返回一个初始化的(而不是置零),类型为 T 的值(而不是*T)。之所以有所不同,是因为这三个类型的背后引用了使用前必须初始化的数据结构 |
| new() | 所有类型 | 指针,new 返回一个指向已清零内存的指针,而 make 返回一个复杂的结构。 | 零值,new(T)会为 T 类型的新项目,但 new 它并不初始化内存,只是将其置零 |
1.使用 OS 层面进程管理,虽然成本低廉快捷,但对 CPU 的性能开销比较大,Golang 通过 Goroutine 的引入,构建一种 SandBox 沙箱容器式的方案,可以将并发处理任务放在语言层面内部,“隔离“在系统层面之上,构建 Goroutine 池的同时,也能保证在性能可靠的前提下,安全性也增强。
目前大规模分布式系统的整体方向,大部分也都是建立在 OS 系统层之上(而非系统层面)以达到可控的标准控制,将 OS 系统级内核 CPU 的开销降到最低保证 OS 层流畅运行,这也让 Linux 为代表的服务器 OS 系统更“专注”做 Base 底层基础性的业务支撑。
数也是一种类型,可以和其他类型一样被保存在变量中。和接口一样,接口也是一种类型。
1 | package main |
go 中有 pprof 包来做代码的性能监控主要涉及两个 pkg:
1 | #web服务器: |