tnblog
首页
视频
资源
登录

Go数据类型

6102人阅读 2020/7/17 17:41 总访问:3662507 评论:0 收藏:0 手机
分类: Go

go数据类型

Go 数据类型


基本数据类型


bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte //uint8的别名
string //uint32的别名,表示Unicode代码点float32 float64
float32 float64
complex64 complex128


类型转化


与其他主要编程语言的差异

  1. Go 语言不允许隐式类型转换
  2. 别名和原有类型也不能进行隐式类型转换

是否可以隐式转换?


创建一个测试类测试

  1. package type_test
  2. import "testing"
  3. func TestImpicit(t *testing.T) {
  4. var a int =1
  5. var b int64
  6. b=a
  7. t.Log(a,b)
  8. }

我们发现报错,且不能隐式转换

我们修改一下代码并进行显示的类型转换

  1. package type_test
  2. import "testing"
  3. func TestImpicit(t *testing.T) {
  4. var a int =1
  5. var b int64
  6. b= int64(a)
  7. t.Log(a,b)
  8. }

我们发现已经过了测试

测试

别名是否可以隐式转换?


修改一个测试类代码

  1. package type_test
  2. import "testing"
  3. type MyInt int64
  4. func TestImpicit(t *testing.T) {
  5. var a int =1
  6. var b int64
  7. b= int64(a)
  8. var c MyInt
  9. c= b
  10. t.Log(a,b,c)
  11. }

我们同样发现报错,且不能隐式转换

我们修改一下代码并进行显示的类型转换并运行

  1. package type_test
  2. import "testing"
  3. type MyInt int64
  4. func TestImpicit(t *testing.T) {
  5. var a int =1
  6. var b int64
  7. b= int64(a)
  8. var c MyInt
  9. c= MyInt(b)
  10. t.Log(a,b,c)
  11. }


类型的预定义值


  1. math.MaxInt64
  2. math.MaxFloat64
  3. math.MaxUint32


指针类型


与其他主要编程语言的差异

  1. 不支持指针运算
  2. string 是值类型,其默认的初始化值为空字符串,而不是nil

是否支持指针运算?


修改代码

  1. package type_test
  2. import (
  3. "fmt"
  4. "testing"
  5. )
  6. func TestPoint(t *testing.T) {
  7. a := 1
  8. aPtr := &a
  9. //不支持aPtr进行指针运算的(不过检测)
  10. //aPtr = aPtr + 1
  11. //获取类型
  12. fmt.Printf("%T %T", a, aPtr)
  13. }

string类型能否为nil?


添加新测试方法的代码

  1. package type_test
  2. import (
  3. "fmt"
  4. "testing"
  5. )
  6. func TestString(t *testing.T) {
  7. var s string
  8. fmt.Println("*" + s + "*")
  9. fmt.Println(len(s))
  10. //可以这样判断非空
  11. if s == "" {
  12. fmt.Println("s=长度为0的字符串")
  13. }
  14. //不过检测
  15. // if s != nil {
  16. // fmt.Println("s!=nil")
  17. // }
  18. }


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

MonGoDB 学习一(包含各种花样坑)

资源链接:链接:https://pan.baidu.com/s/1xgDnP2aHW1fNN9qLAP7OtQ提取码:4zm81,安装MongoDB (传统式的下一步)这里选Cu...

GodeFirst实现外键

GodeFirst实现外键有多种方法如下方法一:通过默认名称,导航属性名称+主表主键父母表生成的效果如下:方法二:通过Foreign...

ng : 无法加载文件 C:\Users\WSJ\AppData\Roaming\npm\ng.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/Go.microsoft.com /fwlink/?LinkID=135170 中的.

错误提示:解决方法:在win10搜索那里搜索Windos PowerShell然后选择管理员身份打开,ps:一定要选择 以管理员身份运行打开...

初识Go

前言Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。后台是谷歌属于出场自带BGM的语言!!!下载Go...

MonGodb HostPath PV与PVC示例

Mongodb HostPath PV与PVC示例[TOC] Persistent Volume 简介 可以做分布式存储的抽象层特点 可以对Pod进行解耦… ...

Go语言基础(一)

Go语言基础(一)[TOC] 基本程序演示 创建一个hello_word.go文件 package main //包,表明代码所在的模块(包) ...

Go语言基础(二)变量,常量以及与其他语言的差异

Go语言基础(二)变量,常量以及与其他语言的差异[TOC] 编写测试程序 注意事项 源码文件以_test结尾:xxx_test.go...

Go 运算符

Go 运算符[TOC] 算术运算符 当A为10,B为20时 运算符 描述 实例 + 相加 A + B 输出结果 30 - ...

Go 在Vscode中设置测试对象有输出

Go 在Vscode中设置测试有输出[TOC] 在使用Golang进行测试方法运行的时候,发现Log输出不了任何东西,原来是在运行测试的...

Go 条件与循环

Go 条件与循环[TOC] 循环 与其他主要编程语言的差异 Go 语言仅支持循环关键字 for。可以从以下代码看出,循环时并没...

Go 数组与切片

Go 数组与切片[TOC] 数组与其他语言的区别 在 Go 中简单的定义 var arr [3]int var arr1 = [3]int{1, 2, 3} 不...

Go Map声明、元素访问与遍历

Go Map声明、元素访问与遍历[TOC] Map的声明 Map的声明相当于其他语言的键值队,通常通过map[key_type]value_type的方式...

Go Map与工厂模式,在Go语言中实现Set

Go Map与工厂模式,在Go语言中实现Set[TOC] Map与工厂模式 Map 的 value 可以是一个方法与 Go 的 Dock type 接口方式一起...

Go 字符串

Go 字符串[TOC] 字符串 string 是数据类型,不是引用类型或指针类型string 是只读的 byte slice,len 函数可以它所包含的...

Go 语言的函数

Go 语言的函数[TOC] 函数与其他语言的主要差异 可以有多个返回值所有参数都是值传递:slice,map,channel会有传引用的...
这一世以无限游戏为使命!
排名
2
文章
657
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术