# GO的数据类型定义
```go
//运行第一个程序
package main
func main(){
print("Hello World")
}
```
> 在GO语言中,一个程序只能有一个main包,对应只能有一个main方法,若无法满足这个条件,编译时将会报错。注释方式与PHP相同
1. import的使用
> 个人在使用import时,按照自己的编写习惯,依赖IDE的自动导包功能,实现包的导入。若导入包后没有使用,会编译出错。
```go
// 使用 . 来实现省略调用
import . "fmt"
// 在包前通过别名替代包名
import stdio "fmt"
// 包前使用 _ 作用为只调取包的init方法
import _ "xxx"
// 使用 () 实现多包导入
import (
"fmt"
"os"
)
```
2. GO的可见性
> GO通过大小写来判别函数或者变量的权限,小写则为private,大写为public
3. 定义数据结构
> GO定义数据类型比较有意思。在函数体内使用var定义的变量必须被使用,否则编译报错,申明外部变量没有限制
1. 布尔类型
> 布尔类型只有true与false两个值,不可用0与1替代
2. 整形
> int类型根据使用的平台自动判别32位还是64位,可以手动定义指定的位数,例如 int8/uint16,定义了指定8位的int型/16位的无符号int型
3. 浮点型
> 浮点型有float32/float64,精确范围对应7/15位
4. 复数类型
> complex64/complex128
5. 其他值类型
> array struct string
6. 引用类型
> slice map chan
7. 接口类型
> inteface
8. 函数类型
> func
```go
// 定义单个变量
var hello = "Hello World"
//定义多个变量
var(
num = 321
str = "haha"
)
//定义常量,定义多个常量与变量的定义一样
const PI =3.14
```
4. 类型零值
> 零值不等于空值,变量被声明为某种类型后的默认值,通常情况下整型的默认值为0,bool为false,string为空字符串
5. 类型别名的定义
> 利用type进行类型别名的定义
```go
type(
chinese string
intMax int64
)
```
6. 变量声明与赋值
```go
变量的声明格式:var <name> <type>
变量的赋值格式:<name> = <value>
声明的同时赋值:var <name> [type] = <value>
自身推断赋值:var <name> = <value>
简写赋值(不可全局变量赋值使用) <name> := <value>
```
7. 类型转换
> 进行类型转换时,需要进行显式转换,并且需要保证两个不同的类型转换可以互相兼容
```go
var a = 'a'
b := int(a)
```
8. 常量的定义问题
> 常量值在编译时已经确定,所以右侧的数据需要使用常量或者内置函数,变量不能进行常量的赋值。定义常量组时,如果不进行数值的赋值,将会将其数值赋值为其上行的数值。常量初始化规则定义了每一行的常量定义个数一致时,默认上行数值下行初始化将进行,否则报错。
> 常量的iota是常量计数器,只在常量的表达式中使用。const中每新增一行常量声明将使iota计数一次
```go
// 赋值b,c均为hello字符串,赋值g,h为1,2
const(
a = "hello"
b
c
e,f = 1,2
g,h
)
// 输出 c为2 f为5
const(
a=1
b
c = iota
d
e
f = iota
)
```
- 前言
- PHP进阶之路
- 1.LANMP的环境安装
- C与数据结构
- PYTHON
- JAVA
- GO入门实践
- 1.入门语法
- 1.安装配置GO环境
- 2.数据类型定义
- 3.运算符
- 4.控制语句
- 5.数组
- 6.切片
- 7.函数
- 8.结构体
- 注意事项
- Linux爬坑之路
- 1.zabbix服务
- 1.在龙芯Fedora机器上部署
- Git版本控制
- 0.工作流程与原理
- 1.安装Git
- 2.安装后配置
- 3.基础命令
- 数据库实践
- 1.SQL基础语法
- 1.基本语法
- 2.MySQL实践
- 1.数据库常用操作
- Docker容器技术
- 1.Docker常用命令
- 2.进阶
- Vagrant虚拟化技术
- 1.基本命令详解
- 2.进阶教程
- WEB前端之旅
- CSS入门
- 1.CSS选择器
- 操作系统
- 杂谈一之系统启动引导