七叶笔记 » golang编程 » GO学习笔记 1 环境配置与基础语法

GO学习笔记 1 环境配置与基础语法

一、 GO语言简介

GO 2007年由Ken Tompson(贝尔实验室Unix团队成员,C语言、Unix和Plan 9的创始人之一)、Rob Pike(贝尔实验室 Unix 团队成员)、Robert Griesemer(Google职员,参与开发Java HotSpot虚拟机,并负责V8 引擎的代码生成部分) 创建, 2019年正式对外发布。
Go 是编译型语言。

GO语言的特性:

  • 语法简单
  • 并发模型,GO为并发而生。
  • 内存分配
  • 垃圾回收
  • 静态链接
  • 标准库
  • 工具链

二、windows开发环境配置

1. 下载golang


我这里下载 go1.15.6.windows-amd64.msi

2. 安装

安装后把可以把 D:\tools\Go\bin 放到path路径。

三、CentOS 环境

 wget 
tar -C /usr/local -xzf go1.15.6.linux-amd64.tar.gz 
vim /etc/profile
  
 export PATH=$PATH:/usr/local/go/bin  
 source /etc/profile
go version  

显示:

 go version go1.15.6 linux/amd64  

四、测试

1. 新建测试文件 test.go

 package main

import "fmt"

func main() {
   fmt.Println("Hello, World!")
}  

2. 测试运行

 go run test.go  

3. 测试编译

 go build test.go  

五、一些基础语法

1. 行分隔符

换行即可。如果在同一行的语句可以使用分号作分隔符。

2. 注释

与C类似,使用 // /* */

六、数据类型

1. 布尔型

var b bool = true

2. 数字类型

  • 整形 int: uint8 uint16 uint32 uint64 int8 int16 int32 int64-
  • 浮点型 float32 float64 complex64 complex128
  • byte(类似uint8),rune(类型int32),uint(32或64位),int(类似uint),uintptr无符号整形,用于存放一个指针

3. 字符串类型

4. 派生类型

  • 指针类型 Pointer
  • 数组类型
  • 结构化类型
  • Channel类型
  • 函数类型
  • 切片类型
  • 接口类型 Interface
  • Map类型

七、声明变量

1. 使用 var 关键字

 var 变量名称 类型  

可以一次声明多个变量。

 package main
import "fmt"
func main() {
    var a string = "Runoob"
    fmt.Println(a)

    var b, c int = 1, 2
    fmt.Println(b, c)
}  

2. 常量声明

 const 变量名 [类型]=value  

3. iota ,特殊常量

可以被编译器修改值,一个计数器。

八、条件语句

条件不需要使用括号 ,如:

 package main

import "fmt"

func main() {
   /* 定义局部变量 */   var a int = 10
 
   /* 使用 if 语句判断布尔表达式 */   if a < 20 {
       /* 如果条件为 true 则执行以下语句 */       fmt.Printf("a 小于 20\n" )
   }
   fmt.Printf("a 的值为 : %d\n", a)
}  

九、循环语句

 package main

import "fmt"

func main() {
    for true  {
        fmt.Printf("无限循环测试\n");
    }
}  

十、函数定义

 func function_name( [parameter list] ) [return_types] {
   函数体
}  

函数允许有多个返回值,如:

 package main

import "fmt"

func swap(x, y string) (string, string) {
   return y, x
}

func main() {
   a, b := swap("值1", "值2")
   fmt.Println(a, b)
}  

十一、数组

定义数组:

 var 数组变量名 [大小] 数据类型  

十二、指针

定义指针:

 var 指针名称 *指针类型  

取地址类似c语言使用 & ,示例:

 package main

import "fmt"

func main() {
   var a int= 20   /* 声明实际变量 */   var ip *int        /* 声明指针变量 */
   ip = &a  /* 指针变量的存储地址 */
   fmt.Printf("a 变量的地址是: %x\n", &a  )

   /* 指针变量的存储地址 */   fmt.Printf("ip 变量储存的指针地址: %x\n", ip )

   /* 使用指针访问值 */   fmt.Printf("*ip 变量的值: %d\n", *ip )
}  

空指针值是 nil

相关文章