当前位置:首页 >> 时尚

Go言语变量与根本数据圭表类型概略

1、言语根本引见

Go 是变量静态(编译型)言语 ,是根本圭表概略分辨于诠释型言语的弱圭表类型言语(静态:圭表类型结实 ,强圭表类型  :不合圭表类型禁尽予直接运算)

比如 python 就是数据静态强圭表类型言语

1  、Go 的类型特点

跨平台的编译型言语 ,交错编译

管道(channel) ,言语切片(slice),变量并发(routine)

有残剩收受领受机制

支撑面向对象和面向过程的根本圭表概略编程编制(Go 的面向对象没有类的定见)

2、Go 的数据经常独霸呼唤

go env   // go的气候变量    -GO111MODULE=     // 空的,如今没无益用MODULE编制    -GOPATH=C:\Users\oldboy\go  // 代码存放路途    -GOROOT=c:\go     // go sdk拆卸路途go build   // 编译型言语,类型需求先编译再奉行	,言语编译成可奉行文件,变量奉行可奉行文件go run   // 编译并奉行,根本圭表概略斥地阶段用,数据两步并作一步go get   // 下载并拆卸包和依托齐截于pip installgo versiongo fmt   // 运转gofmt举办格式化(go fmt 
:主动将代码格式)

3 、类型Hello Word

// 单行诠释/*多行诠释多行诠释 */// Go(全数编译型言语)项目要运转
,必须有一个出口// Go 的出口是 main 包下的 main 函数// main 包下可不成以有多个 main 函数package main    // 声明包名	,包名是 main	,每个 Go 文件都属于某个包import "fmt"    // 导进包
,内置包func main() {    // 定义了一个main函数,除夜括号包裹是函数体的内容 fmt.Println("Hello World")  // 打印函数齐截与print()} // 编译go build s1.go// 奉行s1.exe// 编译并奉行go run s1.go// 在goland中
,右键,运转便可

2 、变量

go 言语的变量定义编制次要分为三种编制 ,并且不克不及几回定义。

1  、定义编制

编制一  :全定义

// var 变量名 变量圭表类型 = 变量值package main import "fmt"func main() {  var age int = 10 // 在go中,变量定义了就必须独霸
,假定不独霸就报错 fmt.Println(age)}

编制二:圭表类型推导(圭表类型就不须要写了)

package mainimport "fmt"func main() {    var age = 20   var name = "XiaoYang"       fmt.Println(age, name)   fmt.Printf("%T\n",name)     // 搜检变量圭表类型 \n展示换行   fmt.Printf("%p",&name)   // 搜检变量内存地址}// 输进20 XiaoYangstring0xc000056230

编制三 :复杂声明(圭表类型和 var 关头字都不写)

package mainimport "fmt"func main() {    age := 20   var age int = 30   // 几回定义会报错,不克不及几回定义       fmt.Println(age)}

其他定义编制:其他定义编制都是在前三种编制的根本上做出变形而展示的 :

只定义不赋值:

var age int // 定义变量
,假定只定义不赋值,只能用这类编制var age  // 偏向
,没法剖断圭表类型

声明多个变量 :

var width, height int = 100, 50  // 声明多个变量var width, height = 100, 50   // 声明多个变量var width, height = 100, "XiaoYang" // 声明多个变量width, height := 100, "XiaoYang" // 声明多个变量

声明多个变量 ,并赋初始值  :

var (   name = "XiaoYang"   age int = 20   height int)fmt.Println(name, age, height)

寄看:

var age int = 20name, age := "XiaoYang", 21  // 这类气候不会报错	,我们感应感染是几回定义,冒号右边只需有一个没有定义过得变量便可以。fmt.Println(name, age)

总结:

  • 变量圭表类型在定义阶段就断定了,一旦断定 ,禁尽予改削
  • 变量不成以几回定义
  • 变量要先定义在独霸
  • 变量定义圭表类型
  • 变量定名建尽大年夜大年夜约独霸驼峰(大年夜小写有出格意义)
  • Go 文件定名建议用下划线
  • 一个名字必须以一个字母(Unicode字母)或下划线开首 ,后背可以跟肆意的字母、数字或下划线
  • 除夜写字母和小写字母是不合的:Name 和 name 是两个不合的变量
  • 关头字和保管字都不建议用作变量名

3、常量

常量定义的定义独霸 const 关头字定义 ,禁尽予改削

编制一 :

package mainimport "fmt"func main() {    const age int = 20 // 禁尽予改削
,改削会报错   fmt.Println(age)}

编制二:圭表类型推导

package mainimport "fmt"func main() {    const age = 20    fmt.Println(age)}

寄看:不克不及独霸 := 这类编拟定义 ,多么就是定义变量了

4、根本数据圭表类型

1  、数字

// 有标识表记标帜整形int: 在32位机械是int32,在64位机械是int64int8
: 展示整数局限是:8个比特位
	,8个bit是1byte ,第一名展示正负数0/1, 所所以2的7次方-1 的局限int16
: 2的15次方减一int32	: 2的32次方减一int64: 2的64次方减一byte: 等于int8short: 等于int16// 无标识表记标帜整形uint8
: 没有负数展示,所所以2的8次方减一uint16: 同上uint32:uint64:

2 、浮点型(小数 ,32/64展示小数点后长度若干很多若干良多若干很多若干良多若干很多若干位)

float32float64

3  、布尔(Bool)

// 数据圭表类型默许值:数字圭表类型是  0字符串圭表类型是    空字符串布尔圭表类型  false

4 、字符串

// 双引号包裹// 单引号包裹

到此这篇关于Go变量与根本数据圭表类型概略的文章就引见到这了,更多相干Go变量与根本数据圭表类型内容请搜刮完竣下载之前的文章或延续不雅不雅不雅不雅鉴赏上面的相干文章希看大年夜师往后多多支撑完竣下载 !

焦点

1、言语根本引见

Go 是变量静态(编译型)言语 ,是根本圭表概略分辨于诠释型言语的弱圭表类型言语(静态:圭表类型结实 ,强圭表类型  :不合圭表类型禁尽予直接运算)

比如 python 就是数据静态强圭表类型言语

1  、Go 的类型特点

跨平台的编译型言语 ,交错编译

管道(channel) ,言语切片(slice),变量并发(routine)

有残剩收受领受机制

支撑面向对象和面向过程的根本圭表概略编程编制(Go 的面向对象没有类的定见)

2、Go 的数据经常独霸呼唤

go env   // go的气候变量    -GO111MODULE=     // 空的,如今没无益用MODULE编制    -GOPATH=C:\Users\oldboy\go  // 代码存放路途    -GOROOT=c:\go     // go sdk拆卸路途go build   // 编译型言语,类型需求先编译再奉行	,言语编译成可奉行文件,变量奉行可奉行文件go run   // 编译并奉行,根本圭表概略斥地阶段用,数据两步并作一步go get   // 下载并拆卸包和依托齐截于pip installgo versiongo fmt   // 运转gofmt举办格式化(go fmt 
:主动将代码格式)

3 、类型Hello Word

// 单行诠释/*多行诠释多行诠释 */// Go(全数编译型言语)项目要运转
,必须有一个出口// Go 的出口是 main 包下的 main 函数// main 包下可不成以有多个 main 函数package main    // 声明包名	,包名是 main	,每个 Go 文件都属于某个包import "fmt"    // 导进包
,内置包func main() {    // 定义了一个main函数,除夜括号包裹是函数体的内容 fmt.Println("Hello World")  // 打印函数齐截与print()} // 编译go build s1.go// 奉行s1.exe// 编译并奉行go run s1.go// 在goland中
,右键,运转便可

2 、变量

go 言语的变量定义编制次要分为三种编制 ,并且不克不及几回定义。

1  、定义编制

编制一  :全定义

// var 变量名 变量圭表类型 = 变量值package main import "fmt"func main() {  var age int = 10 // 在go中,变量定义了就必须独霸
,假定不独霸就报错 fmt.Println(age)}

编制二:圭表类型推导(圭表类型就不须要写了)

package mainimport "fmt"func main() {    var age = 20   var name = "XiaoYang"       fmt.Println(age, name)   fmt.Printf("%T\n",name)     // 搜检变量圭表类型 \n展示换行   fmt.Printf("%p",&name)   // 搜检变量内存地址}// 输进20 XiaoYangstring0xc000056230

编制三 :复杂声明(圭表类型和 var 关头字都不写)

package mainimport "fmt"func main() {    age := 20   var age int = 30   // 几回定义会报错,不克不及几回定义       fmt.Println(age)}

其他定义编制:其他定义编制都是在前三种编制的根本上做出变形而展示的 :

只定义不赋值:

var age int // 定义变量
,假定只定义不赋值,只能用这类编制var age  // 偏向
,没法剖断圭表类型

声明多个变量 :

var width, height int = 100, 50  // 声明多个变量var width, height = 100, 50   // 声明多个变量var width, height = 100, "XiaoYang" // 声明多个变量width, height := 100, "XiaoYang" // 声明多个变量

声明多个变量 ,并赋初始值  :

var (   name = "XiaoYang"   age int = 20   height int)fmt.Println(name, age, height)

寄看:

var age int = 20name, age := "XiaoYang", 21  // 这类气候不会报错	,我们感应感染是几回定义,冒号右边只需有一个没有定义过得变量便可以。fmt.Println(name, age)

总结:

  • 变量圭表类型在定义阶段就断定了,一旦断定 ,禁尽予改削
  • 变量不成以几回定义
  • 变量要先定义在独霸
  • 变量定义圭表类型
  • 变量定名建尽大年夜大年夜约独霸驼峰(大年夜小写有出格意义)
  • Go 文件定名建议用下划线
  • 一个名字必须以一个字母(Unicode字母)或下划线开首 ,后背可以跟肆意的字母、数字或下划线
  • 除夜写字母和小写字母是不合的:Name 和 name 是两个不合的变量
  • 关头字和保管字都不建议用作变量名

3、常量

常量定义的定义独霸 const 关头字定义 ,禁尽予改削

编制一 :

package mainimport "fmt"func main() {    const age int = 20 // 禁尽予改削
,改削会报错   fmt.Println(age)}

编制二:圭表类型推导

package mainimport "fmt"func main() {    const age = 20    fmt.Println(age)}

寄看:不克不及独霸 := 这类编拟定义 ,多么就是定义变量了

4、根本数据圭表类型

1  、数字

// 有标识表记标帜整形int: 在32位机械是int32,在64位机械是int64int8
: 展示整数局限是:8个比特位
	,8个bit是1byte ,第一名展示正负数0/1, 所所以2的7次方-1 的局限int16
: 2的15次方减一int32	: 2的32次方减一int64: 2的64次方减一byte: 等于int8short: 等于int16// 无标识表记标帜整形uint8
: 没有负数展示,所所以2的8次方减一uint16: 同上uint32:uint64:

2 、浮点型(小数 ,32/64展示小数点后长度若干很多若干良多若干很多若干良多若干很多若干位)

float32float64

3  、布尔(Bool)

// 数据圭表类型默许值:数字圭表类型是  0字符串圭表类型是    空字符串布尔圭表类型  false

4 、字符串

// 双引号包裹// 单引号包裹

到此这篇关于Go变量与根本数据圭表类型概略的文章就引见到这了,更多相干Go变量与根本数据圭表类型内容请搜刮完竣下载之前的文章或延续不雅不雅不雅不雅鉴赏上面的相干文章希看大年夜师往后多多支撑完竣下载 !


{dede:include filename="menu.htm"/}