go语言基础(main函数数据类型)
Posted stephanie-boke
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言基础(main函数数据类型)相关的知识,希望对你有一定的参考价值。
go语言基础(main函数、数据类型)
1、Go语言介绍
- Go语言是云计算时代的c语言
- c和c++这类语言提供了很快的执行速度,而Rudy和python这类语言则擅长快速开发。Go语言则介于两者之间,不仅提供了高性能的语言,同时也让开发更快速
优势
- 部署简单,可直接编译成机器码、不依赖其他库,部署就是扔一个文件上去就完成了
- 静态类型语言(c是静态语言、python解释性语言),但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率高
- 语言层面支持并发,这是Go最大的特色。可以充分的利用多核,很容易的使用并发
- 内置runtime,支持垃圾回收GC,不需要手动释放
- 关键字25个,支持:继承、重载、对象等
- 丰富的标准库
- 跨平台编译
- 内嵌c支持
2、 main函数
- go语言以包作为管理单位
- 每个文件必须先声明包
- 程序必须有一个main包(重要),没有程序无法编译
- 程序要有一个入口函数main函数,并且有且只有一个,也就是说在liteide直接图形界面编译,一个文件夹只能有一个main函数
- 左括号必须和函数同行
- "hello world"用fmt.Println打印到屏幕,Println()会自动换行
- // 和/* */注释,选中代码,按ctrl+,注释和取消注释代码的快捷键
- 会自动格式化
- 语句结尾没有分号
- 运行:ctrl+R
- import导入的包必须使用,声明的变量也必须使用
3、使用命令行运行文件(在cmd文件的目录下)
- go build XXX.go:编译生成一个可执行程序(可以解决在一个文件中快捷键只能生成可执行文件.exe的问题)。如go bulid 02_hello.go,go build 01_hello.go运行2次,也会生成2个可执行文件
- cls:清屏
- go run XXX.go:不生成程序,直接运行
4、变量、常量、枚举
4.1 输出
- Println:一段一段处理,自动加换行符
- Printf:格式化输出,把a的内容放在%d的位置
如:
fmt.Println("a = ", a)
fmt.Println("a = ", a, ", b = ", b, " ,c = ", c)
fmt.Printf("a = %d
", a)
fmt.Printf("a = %d, b = %d, c = %d
", a, b, c)
4.2 声明变量
- var a int(申明一个变量)
- var a,b int(声明2个变量)
- var b int = 10(声明变量,同时初始化赋值)
- 自动推导类型,必须初始化,通过初始化的值确定类型(常用),只能一次,赋值可以多次
如:
c := 30
fmt.Printf("c type is %T
", c) //%T打印变量所属的类型
多次赋值,以及值的交换
i, j := 10, 20
j, i = j, i
多个变量不同类型的声明(定义)
var (
a int
b float64
)
var (
a int = 1
b float64 = 1.1
)
var (
a = 1
b = 1.1
)
4.3 匿名变量
匿名变量,丢弃数据不处理,匿名变量配合函数返回值使用,才有优势
tmp, _ = i, j
fmt.Println("tmp = ", tmp)
func test() (a, b, c int){
return 1, 2, 3
}
var c, d, e int
_, d, _ = test()
fmt.Printf("d = %d/n", d)
4.4 常量
- 变量:程序运行期间,可以改变的量,变量声明需要var
-
常量:程序运行期间,不可以改变的量,常量声明需要const,常量自动推导不需要冒号
const a int = 10 fmt.Println("a = ", a)
const b = 11.2 //自动推导不需要冒号 fmt.Printf("b type is %T ", b) fmt.Println("b = ", b)
多个常量的声明 const ( i int = 10 j float64 = 3.14 ) const ( i int = 10 j float64 = 3.14 ) const ( i = 10 j = 3.14 )
4.5 枚举iota
- iota常量自动生成器,每个一行,自动累加1
- iota给常量赋值使用
- iota遇到const,重置为0
- 可以只写一个iota
- 如果是同一行,值都一样
如:
const (
a = iota //0
b = iota //1
c = iota //2
)
const d = iota //重置为0
const (
a1 = iota //0
b1 //1
c1 //2
)
const (
i = iota //0
j1, j2, j3 = iota, iota, iota //1
k = iota //2
)
5 数据类型
数据类型的作用:告诉编译器这个数(变量)应该以多大的内存存储
类型 | 名称 | 长度 | 默认值 | 说明 |
---|---|---|---|---|
bool | 布尔类型 | 1 | false | true 或 fasle |
byte | 字节型 | 1 | 0 | uint8别名,只能存储英文字符 |
rune | 字符类型 | 4 | 0 | 可以存储英文或汉字字符,存储unicode编码,等价于uint32 |
int,uint | 整型 | 4或8 | 0 | 有符号位和无符号位,32位或者64位 |
int8,uint8 | 整型 | 1 | 0 | -128~127, 0~255 |
int16,uint16 | 整型 | 2 | 0 | |
int32,uint32 | 整型 | 4 | 0 | |
int64,uint64 | 整型 | 8 | 0 | |
float32 | 浮点型 | 4 | 0.0 | 小数精确到7位 |
float64 | 浮点型 | 8 | 0.0 | 小数精确到15位 |
complex64 | 复数类型 | 8 | ||
complex128 | 复数类型 | 16 | ||
uintptr | 整型 | 4或8 | ||
string | 字符串 |
以上是关于go语言基础(main函数数据类型)的主要内容,如果未能解决你的问题,请参考以下文章