Golang语言基础第一部分 | 青训营
Golang
Golang的优势
静态类型语言:编译的时候检查出来隐藏的大多数问题
语言层面的并发:
- 天生的基因支持
- 充分的利用多核
强大的标准库:
- runtime系统调度机制
- 高效的GC垃圾回收
- 丰富的标准库
简单易学:
- 25个关键字
- C语言简洁基因,内嵌C语法支持
- 面向对象特征(继承、多态、封装)
- 跨平台
Golang 的应用场景
1、云计算基础设施领域:
代表项目:docker、kubernetes、etcd、consul、cloud flare CDN、七牛云存储 等。
2、基础后端软件:
代表项目:tidb、influxdb、 cockroach 等。
3、微服务
代表项目:go-kit、 micro、 monzo bank 的 typhon、bilibili 等。
4、互联网基础设施
代表项目:以太坊、hyperledger 等。
Golang 的不足
1、包管理,大部分包都托管在 Github 上。
托管在 Github 上的代码容易被作者个人操作影响到使用该项目的工程
2、无泛化类型。
后面版本可能会有
3、所有 Exception 都用 Error 来处理(有争议)。
4、对 C 的降级处理,并非无缝,没有 C 降级到 asm 那么完美。(序列化问题)
基础语法
package main
// 导多个包
import (
"fmt"
"time"
)
// Golang 有无 ; 都可,建议不加
func main() { // 函数的 { 必须和函数名同行, 否则编译报错
fmt.Println("Hello Go!")
time.Sleep(1 * time.Second)
}
变量的声明
输出变量类型的方法:
var a int
fmt.Printf("type of a = %T\n", a)
// type of a = int
局部变量的声明:
// 方法一:声明一个变量 默认的值是0
var a int
// 方法二:声明一个变量,初始化一个值
var b int = 100
// 方法三:初始化的时候, 省去数据类型,通过值自动匹配当前的变量的数据类型
var c = 100
// 方法四:(常用) 省去var关键字,直接自动匹配
d := 100
全局变量的声明:以上只有方法四不支持(编译会报错)
多变量的声明:
// 单行写法
var xx, yy int = 100, 200
var kk, ll = 100, "Aceld"
// 多行写法
var (
vv int = 100
jj bool = true
)
常量与 iota
使用 const 定义常量,常量是只读的,不允许修改
const a int = 10
const (
a = 10
b = 20
)
const 可以用来定义枚举:
const {
BEIJING = 0
SHANGHAI = 1
SHENZHEN = 3
}
const 可以和 iota 一起使用来定义有规则的枚举:
const (
// 可以在const() 添加一个关键字 iota, 每行的iota都会累加1, 第一行的iota的默认值是0
BEIJING = iota
SHANGHAI
SHENZHEN
)
const (
a, b = iota 1, iota 2
c, d
e, f
g, h = iota * 2, iota *3
i, k
)
string
对于字符串操作的 4 个包:bytes、strings、strconv、unicode
- bytes 包操作 []byte。因为字符串是只读的,因此逐步构创建字符串会导致很多分配和复制,使用bytes.Buffer 类型会更高。
- strings 包提供 切割、索引、前缀、查找、替换 等功能。
- strconv 包提供 布尔型、整型数、浮点数 和对应字符串的相互转换,还提供了双引号转义相关的转换。
- unicode 包提供了 IsDigit、IsLetter、IsUpper、IsLower 等类似功能,用于给字符分类。
如果 string 中包含汉字,要注意:
- UTF-8 编码中,一个汉字需要 3 个字节,通过
len()
获取的是字符串占据的字节数。
str1 := "hello 世界"
fmt.Println(len(str1)) // 12
- 如果想要得到字符串本身的长度,可以将 string 转为 rune 数组再计算:
str2 := "hello 世界"
fmt.Println(len([]rune(str2))) // 8
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhcbai
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13