go语言基础

81 阅读3分钟

GO语言

前言

Go 语言(或 Golang)是 Google 2009 年首次开源,并在 2012 年正式发布 Go 稳定版的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去10多年间软件开发的难度令人沮丧。Google 对 Go 寄予厚望,其设计是让软件充分发挥 多核心处理器同步多工 的优点,并可解决面向对象程序设计的麻烦。它具有现代的程序语言特色,如垃圾回收,帮助开发者处理琐碎但重要的内存管理问题。Go 的速度也非常快,几乎和 C 或 C++ 程序一样快,且能够快速开发应用程序。 Go(又称 Golang)一种 静态强类型、编译型 语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。 Go语言在 多核并发 上拥有原生的设计优势,Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。 Go是非常年轻的一门语言,它的主要目标是 “兼具Python 等动态语言的开发速度和C/C++等编译型语言的性能与安全性” 很多公司,特别是中国的互联网公司,即将或者已经完成了使用 Go 语言改造旧系统的过程。经过 Go 语言重构的系统能 使用更少的硬件资源获得更高的并发和I/O吞吐表现 。充分挖掘硬件设备的潜力也满足当前精细化运营的市场大环境。

一,什么是GO

  1. 高性能,高并发
  2. 语法简单,学习曲线平缓
  3. 丰富的标准库
  4. 完善的工具链
  5. 静态链接
  6. 快速编译
  7. 跨平台
  8. 垃圾回收

二,基础语法

梦的开始:

package main//代表这个文件输入main包的一部分
//main包也就是程序的入口包
import ( //引入标准库的FMT包
    "fmt"
)
​
func main(){
    fmt.Println("hello world!")//调用输出
    a := "hi!"
    fmt.Println(a,"world")//输出和python很像
}
  1. 声明变量有两种方式:
var s string = "name" //var name type= 值,其中type可以省略
s := "name" //name := 值
//声明常量时候只需要将var改为const即可
  1. if-else语句:
if 7 < 2 { //if后面不需要括号
    fmt.Println("7")//if后面必须要接大括号
} else { //else必须在大括号后面
    fmt.Println("2")
}
  1. 循环(有且仅有for循环):
for { //可以什么都不写
    break; //与c++相同
}
for i := 1; i <= 5; i++ {
    if i == 2{
        continue; //与c++相同
    }
    fmt.Println(i)
}
  1. switch语句:
switch a{ //有变量
    case 1,2: fmt.Println("one") //1和2进入该分支
    default: fmt.Print;n("NO")
}
t := 100
switch { //无变量
    case t<50 : fmt.Println("<") //可以当作if else语句
    default : fmt.Println(">")
}
  1. 数组:
var a[5] int 
b := [5]int{1,2,3,4,5}
a[4] = 100
fmt.Println(a[4],len(a))
  1. 切片:
//切片不同于数组可以任意更改长度,更多丰富性
s := make([]string, 3) //make创建切片 
s[0] = 'a' //像数组一样取值
s = append(s , "d") //使用append追加元素,需将append的结果赋值给原数组
  1. map:
m := make{map[string]int} //在这里key为string,value是int
m["one"] = 1 
delete(m, "one") //可以用delete删除值
//完全无序,遍历时是随机顺序