一、数值型int(默认值 0)

int 整数 32位系统占4个字节(-2^31~2^31-1)、64位系统占8个字节(-2^63~2^63-1)
uint 32位系统占4个字节(0~2^32-1)、64位系统占8个字节(0-2^64-1)
rune 范围(-2^31~2^31-1) 等价int32,表示一个Unicode码
byte 范围(0~255),当要存储字符时选用byte

1、int的有符号类型

int8 有符号 8 位整型 (-128 到 127)
int16 有符号 16 位整型 (-32768 到 32767)
int32 有符号 32 位整型 (-2147483648 到 2147483647)
int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)

2、int的无符号类型

uint8 无符号 8 位整型 (0 到 255)
uint16 无符号 16 位整型 (0 到 65535)
uint32 无符号 32 位整型 (0 到 4294967295)
uint64 无符号 64 位整型 (0 到 18446744073709551615)

二、浮点型float(默认值 0)

1、float32 占用4个字节(单精度) 范围(-3.403E38~3.403E38)
2、float64 占用8个字节(双精度) 范围 (-1798E308~1.798E308) float64精度高于float32

三、字符型(默认值 "")

字符型存储与读取方式
存储:字符->对应码值->二进制->存储
读取:二进制->码值->字符->读取

如:

var x byte = 'a'
var y int = '够' //utf-8编码Unicode编码10进制结果
fmt.Println(x,y)
结果:
97 22815
赋值字符和int的运算
var x = 10 + 'a'
fmt.Println(x)
结果:
107

  

四、布尔值bool(占用一个字节)(默认值 false)

golang不可以用0或非0来替代false和true

1、true 真
2、false 假

五、字符串string(默认值 "")

在go中字符串一旦赋值,字符串就不可变
"" 双引号扩起来的字符串能识别转义符号
`` 反引号不识别转义符号,把字符串原生形式输出
字符串拼接方式

如:

var x  =  "hello" + "world"
多个换行相加
var y = "hello" + "world" +
"xxx" +
"yyy"

  

六、指针

指针就是一个指针变量指向了一个值的内存地址。

获取变量地址使用&
如:
var i int = 10
&i /为i变量值的内存地址
指针例子:

var a int = 10
fmt.Println(&a) //获取a变量值存储在内存中的地址
var ptr *int = &a //ptr是指针变量名,*int代表int类型的指针(如*string为string类型的指针等),ptr的值是a的内存地址
fmt.Printf("%v\n", ptr)
fmt.Printf("ptr指向的值 %v\n", *ptr) //*ptr就是指向的值 结果:
0xc00005a058
0xc00005a058
ptr指向的值 10

  

七、golang字符类型相互转换

1、int与float之间转换

var x int = 10
var a1 float32 = float32(x)
fmt.Printf("Type: %T Value: %v\n", x, x)
fmt.Printf("Type: %T Value: %v\n", a1, a1) 结果:
Type: int Value: 10
Type: float32 Value: 10

  

2、string与int转换

方式一、使用fmt.Sprintf 转换

var x int = 10
var str string
str = fmt.Sprintf("%d",x)
fmt.Printf("Type: %T Value: %v\n", str, str)
结果:
Type: string Value: 10

  

方式二、使用strconv

package main
import (
"fmt"
"strconv"
)
func main(){
var str string
str_b := "false"
var b bool
var i int = 109
var str_s string = "333"
var in int64
var f1 float64
var str_f string = "231.32124"
str = strconv.Itoa(i) //string
b,_ = strconv.ParseBool(str_b) //会返回2个值
in,_ = strconv.ParseInt(str_s,10,64) //转成10进制的,0转为int,8代表int8,32,64等
f1,_ = strconv.ParseFloat(str_f,64) //转成float64
fmt.Printf("%T %v\n",str,str)
fmt.Printf("%T %v\n",b,b)
fmt.Printf("%T %v\n",in,in)
fmt.Printf("%T %v\n",f1,f1) } ###结果
string 109
bool false
int64 333
float64 231.32124

  

golang数据类型与转换的更多相关文章

  1. Golang数据类型总结及其转换

    golang数据类型 基本类型:boolean,numeric,string类型的命名实例是预先声明的. 复合类型:array,struct,指针,function,interface,slice,m ...

  2. java中数据类型的转换

    数据类型的转换,分为自动转换和强制转换. 自动转换是程序执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换 强制转换必须在代码中声明,转换顺序不受限制 自动数据类 ...

  3. Java的基本数据类型与转换

    1.1 Java为什么需要保留基本数据类型 http://www.importnew.com/11915.html 基本数据类型对大多数业务相关或网络应用程序没有太大的用处,这些应用一般是采用客户端/ ...

  4. java的数据类型的转换

    一:java的数据类型转换除布尔类型boolean(不能转换)有两种:<一> 自动转换: <二> 强制转换 <一>.自动转换:就是将小的数据类型自动转换成大的数据类 ...

  5. JavaScript学习笔记——数据类型强制转换和隐式转换

    javascript数据类型强制转换 一.转换为数值类型 Number(参数) 把任何的类型转换为数值类型 A.如果是布尔值,false为0,true为1 B.如果是数字,转换成为本身.将无意义的后导 ...

  6. JAVA数据类型自动转换,与强制转换

    一.数据类型自动转换 public class Test{ public static void main(String[] args){ int a = 1; double b = 1.5; dou ...

  7. Java学习笔记之:Java数据类型的转换

    一.介绍 数据类型的转换,分为自动转换和强制转换.自动转换是程序在执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换:强制类型转换则必须在代码中声明,转换顺序不受 ...

  8. 语言基础:C#输入输出与数据类型及其转换

    今天学习了C#的定义及特点,Visual Studio.Net的集成开发环境和C#语言基础. C#语言基础资料——输入输出与数据类型及其转换 函数的四要素:名称,输入,输出,加工 输出 Console ...

  9. C#基础(八)——C#数据类型的转换

    C#数据类型的转换主要有以下几种方式: 1.强制转换 注意:char类型不能强制转换成int,如果使用强制转化,得到的是原整数的ASCII码值. 2.class.parse(string类型的变量), ...

随机推荐

  1. AI书单

    1.<TensorFlow实战>   黄文坚 2.<Machine Learning> [美]Tom Mitchell 3.<机器学习> 周志华  

  2. 设计模式之一工厂方法模式(Factory Method)

    工厂方法模式分为三种: 一.普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建.首先看下关系图: 举例如下:(我们举一个发送邮件和短信的例子) 首先,创建二者的共同接口: pub ...

  3. 程序员50题(JS版本)(一)

    程序1:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? for(var i=1,sum=0;i<=4;i++){ for(var j=1;j<=4;j++){ ...

  4. max-width和width的区别

    width为宽度 max-width为最大宽度 如果设置了width,那宽度就定死了,不能动态的改变,显得僵硬 而设置了max-width,实际宽度可以在0~max-width之间,当元素内部宽度不足 ...

  5. 广州.NET微软技术俱乐部休闲活动 - 每周三五晚周日下午爬白云山活动

    基于如下原因: 正如我们在<广州.NET微软技术俱乐部与其他技术群的区别>里面提到的:有人在活动中表达"少了一点自由交流的时间, 我们来自五湖四海, 希望多点时间彼此认识&quo ...

  6. (简单)华为荣耀9i LLD-AL20的Usb调试模式在哪里开启的方法

    每当我们使用pc通过数据线连接上安卓手机的时候,如果手机没有开启Usb开发者调试模式,pc则没法成功检测到我们的手机,有时,我们使用的一些功能较好的应用如以前我们使用的一个应用引号精灵,老版本就需要开 ...

  7. uiautomatorviewer 查看元素报错: Error taking device screenshot: null 原因

    使用uiautomatorviewer 查看android某些页面元素,出现错误Error obtaining UI hierarchy  Reason: Error taking device sc ...

  8. 以太坊智能合约 Solidity 的常用数据类型介绍

    目录 目录 1.数组 1.1.对数组的增删改查操作. 2.String.Bytes.Mapping的使用 3.Enums 和 Structs 的简单应用 4.Ether 单位和 Time 单位 5.A ...

  9. git rebase 使用详解

    rebase 假设你现在基于远程分支"origin",创建一个叫"mywork"的分支. $ git checkout -b mywork origin   现 ...

  10. echarts中legend如何换行

    lengend data数据中若存在'',则表示换行,用''切割.