GO语言的数据类型:

/*
GO语言的数据类型:
1.基本数据类型:
布尔类型:true,false
数值类型:整数,浮点,复数complex
字符串:string
2.复合数据类型
array,slice,map,function,pointer,struct,interface,channel... 1.值类型:存储的是数值本身,数据传递给其他变量时传递的是数据的副本。
int,float,string,bool,array,struct
2.引用类型:存储的是数据的内存地址,数据传递时传递的地址。默认零值是nil
slice,map,channel,function,pointer
*/

布尔类型和数值类型

package main

import "fmt"

func main() {

	//1.bool
var b1 bool
b1 = true
fmt.Printf("%T,%t\n", b1, b1)
b2 := false
fmt.Printf("%T,%t\n", b2, b2) //2.整数
/*
有符号,最高位表示符号位,0正,1负
int8,-128到127
int16,-32768到32767
int32,-2147483648到2147483647
int64,-9223372036854775808到9223372036854775807 无符号8位整型,所有位都表示数值
uint8,0到255
uint16,0到65535
uint32,0到4294967295
uint64,0到18446744073709551615
*/ //通常使用int和uint,位数根据操作系统自动选择
//但在语法角度,int和int64不是同一种类型
var i1 int = 1000
var i2 int64 = 2000
fmt.Printf("%d,%T\n", i1, i1)
fmt.Printf("%d,%T\n", i2, i2) //byte:uint8的别称
//rune:int32的别称
var i3 uint8 = 100
var i4 byte = i3
fmt.Printf("%d,%T\n", i4, i4) //类型推断,默认为int
var i5 = 500
fmt.Printf("%d,%T\n", i5, i5) //3.浮点:float32,float64
var f1 float32 = 3.1415926
var f2 float64 = 3.1415926
fmt.Printf("%f,%T\n", f1, f1) //默认保留6位小数
fmt.Printf("%f,%T\n", f2, f2)
fmt.Printf("%.2f,%T\n", f1, f1) //保留两位小数
fmt.Println(f2)
}

bool,true

bool,false

1000,int

2000,int64

100,uint8

500,int

3.141593,float32

3.141593,float64

3.14,float32

3.1415926

字符串

package main

import "fmt"

/*
字符串:
1.概念:多个byte的集合,理解为一个字符序列
2.语法:
使用双引号"abc","hello"
也可以使用`abc`,`hello` */
func main() { //1.定义字符串
var s1 string = "彗星"
var s2 string = `恒星`
fmt.Printf("%s,%T\n",s1,s1)
fmt.Printf("%s,%T\n",s2,s2) //2.单引号双引号区别
s3 := 'a'
s4 := "a"
fmt.Printf("%d,%T\n",s3,s3) //单引号是ASCII码,int32类型
fmt.Printf("%s,%T\n",s4,s4)
s5 := '天'
fmt.Printf("%d,%T,%c,%q\n",s5,s5,s5,s5) //单引号中文,是Unicode编码 //3.转义字符
fmt.Println("\"haha\"")
fmt.Println(`"haha"`)
fmt.Println("`haha`")
fmt.Printf("hello\tworld\n")
}

彗星,string

恒星,string

97,int32

a,string

22825,int32,天,'天'

"haha"

"haha"

`haha`

hello world

数据类型转换

package main

import "fmt"

/*
数据类型转换:
go语言是静态语言,定义、赋值、运算必须类型一致
语法:Type(Value)
注意:
兼容的类型才能转换
常数自动转换,变量才需要手动转换
*/
func main() {
var a int8 = 10
var b int16
b = int16(a)
fmt.Println(a, b)
}

10 10

go基础——基本数据类型的更多相关文章

  1. C#基础--之数据类型

    C#基础--之数据类型 摘自:http://www.cnblogs.com/tonney/archive/2011/03/18/1987577.html 在第一章我们了解了C#的输入.输出语句后,我这 ...

  2. page74-泛型可迭代的基础集合数据类型的API-Bag+Queue+Stack

    [泛型可迭代的基础集合数据类型的API] 背包:就是一种不支持从中删除元素的集合数据类型——它的目的就是帮助用例收集元素并迭代遍历所有收集到的元素.(用例也可以检查背包是否为空, 或者获取背包中元素的 ...

  3. JavaScript基础:数据类型的中的那些少见多怪

    原文:JavaScript基础:数据类型的中的那些少见多怪 Javascript共有6种数据类型,其中包括3个基本数据类型(string,number,boolean).2个特殊数据类型(undefi ...

  4. Python基础之数据类型

    Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...

  5. java基础(数据类型,运算符)

    java基础之数据类型(变量) java中存在的数据有常量和变量 常量:在程序执行的过程中其值不可以发生改变 常量的分类 字面值常量 字面值常量的分类 常量 描述 字符串常量 用双引号括起来的内容 整 ...

  6. js基础--javaScript数据类型你都弄明白了吗?绝对干货

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 数据类型的分类 JavaScript的数据类型分为两大类,基本数据类型和复杂数据类型. 基本数据类型:Null.Undefine ...

  7. Go语言基础之数据类型

    Go语言基础之数据类型 Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等.Go 语言的基本类型和其他语言大同小异. ...

  8. 第二章:python基础,数据类型

    """第二章:python基础,数据类型2.1 变量及身份运算补充2.2 二进制数2.3 字符编码每8位所占的空间位一个比特,这是计算机中最小的表示单位.每8个比特组成一 ...

  9. C#基础 常用语&数据类型定义&类型转换

    int temp = Console.Read(); Console.WriteLine(temp); Console.Read(); Console.Write("  ");直接 ...

  10. python基础一数据类型之字典

    摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...

随机推荐

  1. Zookeeper集群安装Version3.5.1

    Zookeeper集群安装,基于版本3.5.1, 使用zookeeper-3.5.1-alpha.tar.gz安装包. 1.安装规划 zookeeper集群模式,安装到如下三台机器 10.43.159 ...

  2. golang mongodb 驱动二次封装

    mongodb 官方的go驱动包 go.mongodb.org/mongo-driver 使用起来比较繁琐,最近对其进行了二次封装 github地址:https://github.com/w3liu/ ...

  3. js- float类型相减 出现无限小数的问题

    6.3 -1.1 是不是应该等于5.2? 但是js 会导致得出 5.19999999999的结果 怎么办?可以先先乘100 后相减,然是用方法 舍入为最接近的整数,然后再除于100, Math.rou ...

  4. 深入谈谈 Java IOC 和 DI

    1.前言 不得不说, IOC和DI 在写代码时经常用到.还有个就是在面试时 ,面试官老喜欢问 IOC 和DI是什么的问题,都快被问吐了, 可是,仍然会让许多人说的支支吾吾. 为什么? 第一,因为这个知 ...

  5. 实验 1 :Mininet 源码安装和可视化拓扑

    实验 1 : Mininet 源码安装和可视化拓扑工具 一 .实验目的 掌握 Mininet 的源码安装方法和 miniedit 可视化拓扑生成工具. 二 .实验任务 使用源码安装 Mininet 的 ...

  6. nuxt 相关

    https://github.com/xuqiang521/nuxt-ssr-demo https://www.cnblogs.com/laozhang-is-phi/p/10249248.html ...

  7. CTF中的变量覆盖问题

    0x00 前言 最近在干代码审计,于是就把之前学习的CTF题目中有关变量覆盖的题目结合下进一步研究. 通常将可以用自定义的参数值替换原有变量值的情况称为变量覆盖漏洞.经常导致变量覆盖漏洞场景有:$$使 ...

  8. ubuntu安装更换阿里云镜像源

    如果使用apt-get安装软件过慢,可以考虑以下步骤 1.备份 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 2.编辑 sudo vi ...

  9. 《剑指offer》面试题05. 替换空格

    问题描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输入:s = "We are happy." 输出:"We%20a ...

  10. java类的反射机制

    1.获得一个类的类对象有哪些方式? - 方法1:类型.class,例如:String.class- 方法2:对象.getClass(),例如:"hello".getClass()- ...