
golang基础--类型与变量
发布日期:2021-05-09 02:19:24
浏览次数:10
分类:博客文章
本文共 2419 字,大约阅读时间需要 8 分钟。
基础知识--类型与变量
基本类型
布尔型:bool
- 长度: 1字节
- 取值范围: false, true
- 注意事项: 不可以使用数字代表,不像 python中可是使用 1和0表示
整型: int/uint
- 根据运行平台可能是32位或者是64位
8位整型: int8/uint8
- 长度:1字节
- 取值范围:
- 128~127(有运算符号)
- 0-255 无符号
字节型: byte (uint8别名)
16位整型:int16/uint16
- 长度:2字节
- 取值范围: -32768~32767 / 0~65536
32位整型:int32(rune) /uint32
- 长度:4字节
- 取值范围:-2^32 /2 -2^32 / 2-1/0~2^32-1
64位整型:int64/uint64
- 长度:8字节
- 取值范围:-2^64 /2 -2^64 / 2-1/0~2^64-1
浮点型: float32/float64
- 长度:4/8字节
- 小数位:精度 7/15小数位
足够保存指针的32或64位整数型:uintptr
其他类型:
- array, struct ,string
引用类型:
- slice, map, chan(通道--高并发特有)
接口类型: inteface
函数类型:func
类型零值
零值并不等于空值,而是当变量被声明位某种类型后的默认值,通常情况下值类型的默认值为0,bool为false, string 为空字符串
package mainimport "fmt"func main(){ var a int var b int32 var c float32 var d bool var e string var a1[] int fmt.Println(a) fmt.Println(b) fmt.Println(c) fmt.Println(d) fmt.Println(e) fmt.Println(a1)}/*output0 //int0 //int320 //float32false //bool// string 默认为空[] //切片*/
类型别名
顾名思义就是可以将类型名指向一个别名
// 类型别名package mainimport "fmt"type (byte int8 rune int32 文本 string // 可使用中文类型别名(不建议这样做,It's stupid!) ByteSize int64 // 可以更加直观的描述类型 )func main() { var b 文本 //将string 类型定义别名为文本b ="文本类型名"fmt.Println(b)}// output : 文本类型名import "fmt"
多个变量的声明
注意多个变量赋值多种写法
//多个变量声明package mainimport "fmt"var ( aaa = "hello" sss,bbb = 1, 2 //自行推断类型 // ccc :=3是错误的,不可以省略var)func main() { //var a, b, c, d = 1, 2, 3, 4 //并行声明变量,省略int类型 //a, b, c, d := 1, 2, 3, 4 // 函数变量中可以省略var,全局变量必须使用var a, _, c, d := 1, 2, 3, 4 // _可以忽略某一个值,实际应用于当函数有多个返回值时,忽略某一个不使用的值 fmt.Println(a) //fmt.Println(b) fmt.Println(c) fmt.Println(d) }
变量类型转换
go中不存在隐式转换,所有的类型转化必须是显示的声明
转换只发生在两种相互兼容的类型之间
类型转换格式如下:
// 类型转换package mainimport "fmt"func main() { var a float32 = 100.1 fmt.Println(a) b := int(a) fmt.Println(b) //这种方式是可行,只存在精度的丢失 c :=bool(a) //这种方式是可行,只存在精度的丢失 fmt.Println(c) } /*output a-->100.1 b--->100 //丢失了精度 c--->cannot convert a (type float32) to type bool */
思考:数字如何变成字符串?
//int转string,并不是我们想达到的效果package mainimport ( "fmt" "strconv" //导入类型转换包 )func main() { var a int = 65 b := string(a) //int 转string,输出的是UTF8码中,序号65位表示的是字母A b1 := strconv.Itoa(a) //确实想要将int 65 转换成string 65,使用 strconv包 fmt.Println(b) fmt.Println(b1) } //output: A //output: "65"
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年03月24日 03时26分24秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
js的严格模式
2021-05-09
idea的安装和无限期试用
2021-05-09
Oracle VM VirtualBox安装PVE虚拟机
2021-05-09
【转】如何用css限制文字长度,使溢出的内容用省略号…显示
2021-05-09
Android MediaPlayer setDataSource failed
2021-05-09
ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路
2021-05-09
【nodejs原理&源码杂记(8)】Timer模块与基于二叉堆的定时器
2021-05-09
大前端的自动化工厂(1)——Yeoman
2021-05-09
数据仓库建模方法论
2021-05-09
虚拟机搭建hadoop环境
2021-05-09
DataStax Bulk Loader教程(四)
2021-05-09
.NET应用框架架构设计实践 - 概述
2021-05-09
Rust 内置 trait :PartialEq 和 Eq
2021-05-09
Hibernate(十四)抓取策略
2021-05-09
[菜鸟的设计模式之旅]观察者模式
2021-05-09
Spring-继承JdbcDaoSupport类后简化配置文件内容
2021-05-09
Java基础IO流(一)
2021-05-09
Hibernate入门(四)---------一级缓存
2021-05-09
MySQL事务(学习笔记)
2021-05-09