这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
今天是我来到字节青训营的的第一天,开始第一节课学习了go语言,对于学过C,C++,JAVA语言,对于go语言还是很好上手的,但也会有很多差别。
1.1 为什么选择go语言
1.高性能,高并发
2.语法简单,学习曲线平缓
3.丰富的标准库
4.完善的工具链
5.静态链接
6.快速编译
7.跨平台
8.垃圾回收
1.2字节跳动为什么全面拥抱了go语言
1.最初使用的Python,由于性能问题换成了go
2.C++不太适合在线Web业务
3.早期团队非Java背景
4.性能比较好
5.部署简单,学习成本低
6.内部RPC和HTTP框架的推广
1.3基础语法
1.声名变量
func main(){
//Go 语言中变量的声明必须使用空格隔开,声名数据变量如:
var a int
其与我学过的语言最大的区别就是将数据类型写在后面,并且每一局后面不加分号,这种开始真是不习惯,甚至感觉有点反人类(doge
2.if else 条件语句
func main(){
//Go 编程语言中 if...else 语句的语法如下:
```
if 布尔表达式 {
/* 在布尔表达式为 true 时执行 */
} else {
/* 在布尔表达式为 false 时执行 */
}
不用加 (),但是每一句必须得加 {}
3.for 循环语句
func main(){
//Go 语言的 For 循环有 3 种形式,只有其中的一种使用分号。
for init; condition; post { }
for condition { }
for { }
}
4.switch 条件语句
func main(){
switch var1 {
case val1:
...
case val2:
...
default:
...
}
}
变量 var1 可以是任何类型,而 val1 和 val2 则可以是同类型的任意值。类型不被局限于常量或整数,但必须是相同的类型;或者最终结果为相同类型的表达式。
4.数组
var variable_name [SIZE] variable_type
以上为一维数组的定义方式。例如以下定义了数组 balance 长度为 10 类型为 float32:
var balance [10] float32
5.切片(Slice)
声明一个未知大小的数组来定义切片:
var identifier []type
切片不需要说明长度。
或使用 make() 函数来创建切片:
var slice1 []type = make([]type, len)
也可以简写为
slice1 := make([]type, len)
初始化切片 s,是数组 arr 的引用。
s := arr[startIndex:endIndex]
6.Map
定义map:
/* 声明变量,默认 map 是 nil */
var map_variable map[key_data_type]value_data_type
/* 使用 make 函数 */
map_variable := make(map[key_data_type]value_data_type)
以上就是我初学go语言的一些总结,,,明天再见