go学习第三天、数据类型
基本数据类型
bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // alias for uint8
rune // alias for int32, represents a Unicode code point
float32 float64
complex64 complex128
类型转化
- Go语言不允许隐式类型转换
- 别名和原有类型也不能进行隐式类型转换
不允许隐式类型转换
package type_test
import "testing"
func TestImplicit(t *testing.T) {
var a int = 1
var b int64
b = a
t.Log(a, b)
}
输出
# command-line-arguments_test [command-line-arguments.test]
./type_test.go:10:4: cannot use a (type int) as type int64 in assignment
Compilation finished with exit code 2
修正后:
func TestImplicit(t *testing.T) {
var a int = 1
var b int64
b = int64(a)
t.Log(a, b)
}
输出
=== RUN TestImplicit
--- PASS: TestImplicit (0.00s)
type_test.go:12: 1 1
PASS
Process finished with exit code 0
别名和原有类型也不能进行隐式类型转换
func TestImplicit(t *testing.T) {
var a int = 1
var b int64
b = int64(a)
var c MyInt
c = b
t.Log(a, b, c)
}
输出
# command-line-arguments_test [command-line-arguments.test]
./type_test.go:13:4: cannot use b (type int64) as type MyInt in assignment
Compilation finished with exit code 2
修正后
func TestImplicit(t *testing.T) {
var a int = 1
var b int64
b = int64(a)
var c MyInt
c = MyInt(b)
t.Log(a, b, c)
}
输出
=== RUN TestImplicit
--- PASS: TestImplicit (0.00s)
type_test.go:14: 1 1 1
PASS
Process finished with exit code 0
类型的预定义值
- math.MaxInt64 最大能表示的最大整型
- math.MaxFloat64 最大能表示的浮点型
- math.MaxUint32 最大能表示32位无符号整型
指针类型
- 不支持指针运算
- string是只类型,其默认的初始化值为空字符串,而不是nil
不支持指针运算
func TestPoint(t *testing.T) {
a := 1
aPtr := &a
aPtr = aPtr + 1
t.Log(a, aPtr)
t.Logf("%T %T", a, aPtr)
}
输出
# command-line-arguments_test [command-line-arguments.test]
./type_test.go:20:14: invalid operation: aPtr + 1 (mismatched types *int and int)
Compilation finished with exit code 2
string是只类型,其默认的初始化值为空字符串,而不是nil
func TestString(t *testing.T) {
var s string
t.Log("*"+s+"*")
t.Log(len(s))
if len(s)==0{
t.Log("这是一个空字符串")
}
}
输出
=== RUN TestString
--- PASS: TestString (0.00s)
type_test.go:27: **
type_test.go:28: 0
type_test.go:30: 这是一个空字符串
PASS
Process finished with exit code 0
go学习第三天、数据类型的更多相关文章
- COM学习(三)——数据类型
上回书介绍了GUID.CLSID.IID和接口的概念.本回的重点是介绍 COM 中的数据类型.咋还不介绍组件程序的设计步骤呀?咳......别着急,别着急!孔子曰:"饭要一口一口地吃&quo ...
- Python学习笔记三:数据类型
数据类型 整数int 32位机器,-2**31~2**31-1,即-2147483648~2147483647(4亿多) 64位机器,-2**63~2**63-1,非常大了. 长整型long 没有位数 ...
- JavaScript高级程序设计第三版学习笔记(一)之数据类型区分详谈
null.NaN.undefined三者的区别是什么? 在初次接触到JavaScript的时候,傻傻的分不清null.NaN.undefined三者到底区别何在,在实际的项目开发中也因为这个问题而困惑 ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- MyBatis学习 之 三、动态SQL语句
目录(?)[-] 三动态SQL语句 selectKey 标签 if标签 if where 的条件判断 if set 的更新语句 if trim代替whereset标签 trim代替set choose ...
- java之jvm学习笔记三(Class文件检验器)
java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...
- python学习第三次记录
python学习第三次记录 python中常用的数据类型: 整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set). int.数 ...
- python学习日记(基础数据类型及其方法01)
数字 int 主要是用于计算的,常用的方法有一种 #既十进制数值用二进制表示时,最少使用的位数i = 3#3的ASCII为:0000 0011,即两位 s = i.bit_length() print ...
- Typescript 学习笔记二:数据类型
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- Typescript 学习笔记三:函数
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
随机推荐
- CSS3解决字母不换行的方法
CSS3解决字母不换行的方法 <pre>word-wrap: break-word;</pre>
- day-5元组专区
*元组,元素不可被修改,不能被增加或者删除tupletu = (11,22,33,44)tu.count(22),获取指定元素在元组中出现的次数tu.index(22),索引22在元组中位置(左到右第 ...
- HashMap深入分析及使用要点
本文内容来自深入理解HashMap.从数据结构谈HashMap.HashMap深度分析 先说使用要点. 1.不要在并发场景中使用HashMap HashMap是线程不安全的,如果被多个线程共享的操作, ...
- C# 操作本地用户和组(基本全功能)
今天学习了下怎么用.Net操作本地用户和组,因为目前网上还没看到一篇比较完整的文章,所以整理了下也分享出来,最后附带参考文档,方便深究的童鞋继续学习.========== 原创作品 作者:Yo ...
- MySQL数据库之MyISAM与InnoDB的区别
MySQL数据库之MyISAM与InnoDB的区别 从以下几个方面: 1.存储结构 每个MyISAM在磁盘上存储成三个文件.第一个文件的名字以表的名字开始,扩展名指出文件类型. .frm文件存储表定义 ...
- [LC]876题 Middle of the Linked List (链表的中间结点)(链表)
①中文题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式 ...
- nyoj 62-笨小熊(以对应数组中的ASC位 + 1)
62-笨小熊 内存限制:64MB 时间限制:2000ms Special Judge: No accepted:15 submit:43 题目描述: 笨小熊的词汇量很小,所以每次做英语选择题的时候都很 ...
- JAVA继承中子父类的构造方法
首先,构造方法本身会有一个隐式的无参构造(默认): ①不写构造方法,类中的第一行代码事实上有一个默认的无参构造(系统会隐式为你写好) public class Student { private St ...
- PHP常用的三种输出语句
今天介绍一下PHP三种常用的输出语句: 1.echo语句 2.print_r语句 3.var_dump语句 echo语句:可以输出数字.字符串 例: echo 12: echo 'aswedf'; e ...
- ef+Npoi导出百万行excel之踩坑记
最近在做一个需求是导出较大的excel,本文是记录我在做需求过程中遇到的几个问题和解题方法,给大家分享一下,一来可以帮助同样遇到问题的朋友,二呢,各位大神也许有更好的方法可以指点小弟一 ...