Go语言之旅:基本类型
原文地址:https://learn-linux.readthedocs.io
欢迎关注我们的公众号:小菜学编程 (coding-fan)
Go 内置了以下基本类型:
布尔
- bool
字符串
- string
整数
- int int8 int16 int32 int64
- uint uint8 uint16 uint32 uint64
字节
- byte , uint8 的别名
Unicode
- rune , int32 别名
浮点
- float32 float64
复数
- complex64 complex128
package main
import (
"fmt"
"math/cmplx"
)
var (
ToBe bool = false
MaxInt uint64 = 1 << 64 -1
z complex128 = cmplx.Sqrt(-5 +12i)
)
func main() {
fmt.Printf("Type: %T Value: %v\n", ToBe, ToBe)
fmt.Printf("Type: %T Value: %v\n", MaxInt, MaxInt)
fmt.Printf("Type: %T Value: %v\n", z, z)
}
例子展示了几种不同类型变量的用法。 注意到,跟 import语句 一样,变量申明可以批量写到一个代码块里。
一般来说,int 、 uint 以及 uintptr 类型在 32 位机器上是 32 位长; 在 64 位机器上则是 64 位长。 需要使用整数时, int 类型是首选, 除非你有特别的理由一定要用 定长 或者 无符号 类型。
零值
变量申明时没有显式赋初始值,则默认是“ 零 ”。
不同的类型有不同的“ 零 ”:
- 对于数值类型是
0; - 对于布尔类型是
false; - 对于字符串类型是
""(空字符串);
package main
import "fmt"
func main() {
var i int
var f float64
var b bool
var s string
fmt.Printf("%v %v %v %q\n", i, f, b, s)
}
类型转换
表达式 ( expression ) T(v) 将值 v 转换成类型 T , 这就是所谓的 类型转换 ( type conversions )。
这是一些数值类型转换:
var i int = 42
var f float64 = float64(i)
var u uint = uint(f)
或者简写成:
i := 42
f := float(i)
u := uint(f)
跟 C 语言有所不同, Go 在不同类型之间赋值,需要显式类型转换。 不信,将下面例子中 float64 和 unit 类型转换移除,看看发生什么?
package main
import (
"fmt"
"math"
)
func main() {
var x, y int = 3, 4
var f float64 = math.Sqrt(float64(x*x + y*y))
var z uint = uint(f)
fmt.Println(x, y, z)
}
类型推理
变量类型通过右边的值推理而来。
如果申明右边的值是有类型的,那么新变量也是一样的类型:
var i int
j := i // j is an int as well
如果右边只是一个数值常量,没有具体类型,那么新变量可能是 int 、 float64 以及 complex128 三种类型中的一种,取决于常量的精度。
i := 42 // int
f := 3.142 // float64
g := 0.867 + 0.5i // complex128
接下来做个实验吧! 改变例子中 v 的初始值,观察它是如何影响变量类型的:
package main
import "fmt"
func main() {
v := 42 // change me!
fmt.Printf("v is of type %T\n", v)
}
下一步
订阅更新,获取更多学习资料,请关注我们的 微信公众号 :


Go语言之旅:基本类型的更多相关文章
- GO语言总结(2)——基本类型
上篇博文总结了Go语言的基础知识——GO语言总结(1)——基本知识 ,本篇博文介绍Go语言的基本类型. 一.整型 go语言有13种整形,其中有2种只是名字不同,实质是一样的,所以,实质上go语言有1 ...
- C语言基础(6)-char类型
1. char常量.变量 使用单引号‘’引起来的就是char的常量 ‘a’是一个char类型的常量 “a”是一个字符串类型的常量 1是一个int型的常量 ‘1’是一个char型的常量 char a; ...
- C语言小结之结构类型
C语言小结之结构类型 @刁钻的游戏 (1)枚举型类型enum COLOR {BLACK,RED,BLUE};//声明一种新的数据类型,其值分别为0,1,2但是用BLACK/RED/BLUE代表也可以这 ...
- 【C语言学习】存储类型
C语言中的存储类型主要有四种:auto.static.extern.register ★auto存储类型 默认的存储类型.在C语言中,假设忽略了变量的存储类型,那么编译器就会自己主动默认为auto型 ...
- Go语言规格说明书 之 类型(Types)
go version go1.11 windows/amd64 本文为阅读Go语言中文官网的规则说明书(https://golang.google.cn/ref/spec)而做的笔记,完整的介绍Go语 ...
- C语言学习之枚举类型
前言 枚举(enum)类型是计算机编程语言中的一种数据类型.枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把 ...
- 《Go语言实战》Go 类型:基本类型、引用类型、结构类型、自定义类型
Go 语言是一种静态类型的编程语言,所以在编译器进行编译的时候,就要知道每个值的类型,这样编译器就知道要为这个值分配多少内存,并且知道这段分配的内存表示什么. 提前知道值的类型的好处有很多,比如编译器 ...
- Docs-.NET-C#-指南-语言参考-关键字-值类型:可以 null 的值类型
ylbtech-Docs-.NET-C#-指南-语言参考-关键字-值类型:可以 null 的值类型 1.返回顶部 1. Nullable value types (C# reference) 2019 ...
- Docs-.NET-C#-指南-语言参考-关键字-值类型:struct
ylbtech-Docs-.NET-C#-指南-语言参考-关键字-值类型:struct 1.返回顶部 1. struct(C# 参考) 2015/07/20 struct 类型是一种值类型,通常用来封 ...
- Docs-.NET-C#-指南-语言参考-关键字-值类型:enum
ylbtech-Docs-.NET-C#-指南-语言参考-关键字-值类型:enum 1.返回顶部 1. enum(C# 参考) 2015/07/20 enum 关键字用于声明枚举,一种包含一组被称为枚 ...
随机推荐
- Vue.js小案例(1)
数据绑定 数据绑定是vue.js的基础.本例中就是利用了vue.js的v-model指令在表单元素上创建双向数据绑定. <!--这是我们的View--> <div id=" ...
- centos配置网络
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE="eth0"BOOTPROTO=&qu ...
- 微服务&spring cloud架构系列汇总
为了方便查找,把微服务&微服务架构之spring cloud架构系列文章按时间正序整理了一下,记录如下: 1. 微服务架构之spring cloud 介绍 2. 微服务架构之spring ...
- [iOS] UIFont 设置字体
label.font = [UIFont fontWithName:@"Arial-BoldItalicMT" size:24]; 字体名如下: Font Family: Amer ...
- unistd.h文件
转载地址:http://baike.baidu.com/link?url=nEyMMFYevs4yoHgQUs2bcfd5WApHUKx0b1ervi7ulR09YhtqC4txmvL1Ce3FS8x ...
- MUI框架-04-切换页面头部文字重叠
MUI框架-04-切换页面头部文字重叠 从现在开始就只分享 MUI 框架开发时遇到的问题了 开发不懂请查看:官方文档 问题情况 切换页面 title 文字重叠,覆盖 截图: 解决办法 给 h1 标签加 ...
- DrawerLayout使用
1 :DrawerLayout侧边栏用于实现如图所示的效果:
- 2.java相对路径与绝对路径
1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz/test.txt 代表了test.txt文件的绝对路径.http://www. ...
- 京东原来你运用的这玩意,不错,我也要!! ContainerDNS
转自社区 ContainerDNS 本文介绍的 DNS 命名为 ContainerDNS,作为京东商城软件定义数据中心的关键基础服务之一,具有以下特点: 分布式,高可用 自动发现服务域名 后端探活 易 ...
- c#(winform)环境下使用动态链接库dll的详解
1,什么是dll文件? DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型.在Windows中,许多应用程序并不是一个完整的可执行文件,它们被 ...