golang数据类型与转换
一、数值型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数据类型与转换的更多相关文章
- Golang数据类型总结及其转换
golang数据类型 基本类型:boolean,numeric,string类型的命名实例是预先声明的. 复合类型:array,struct,指针,function,interface,slice,m ...
- java中数据类型的转换
数据类型的转换,分为自动转换和强制转换. 自动转换是程序执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换 强制转换必须在代码中声明,转换顺序不受限制 自动数据类 ...
- Java的基本数据类型与转换
1.1 Java为什么需要保留基本数据类型 http://www.importnew.com/11915.html 基本数据类型对大多数业务相关或网络应用程序没有太大的用处,这些应用一般是采用客户端/ ...
- java的数据类型的转换
一:java的数据类型转换除布尔类型boolean(不能转换)有两种:<一> 自动转换: <二> 强制转换 <一>.自动转换:就是将小的数据类型自动转换成大的数据类 ...
- JavaScript学习笔记——数据类型强制转换和隐式转换
javascript数据类型强制转换 一.转换为数值类型 Number(参数) 把任何的类型转换为数值类型 A.如果是布尔值,false为0,true为1 B.如果是数字,转换成为本身.将无意义的后导 ...
- JAVA数据类型自动转换,与强制转换
一.数据类型自动转换 public class Test{ public static void main(String[] args){ int a = 1; double b = 1.5; dou ...
- Java学习笔记之:Java数据类型的转换
一.介绍 数据类型的转换,分为自动转换和强制转换.自动转换是程序在执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换:强制类型转换则必须在代码中声明,转换顺序不受 ...
- 语言基础:C#输入输出与数据类型及其转换
今天学习了C#的定义及特点,Visual Studio.Net的集成开发环境和C#语言基础. C#语言基础资料——输入输出与数据类型及其转换 函数的四要素:名称,输入,输出,加工 输出 Console ...
- C#基础(八)——C#数据类型的转换
C#数据类型的转换主要有以下几种方式: 1.强制转换 注意:char类型不能强制转换成int,如果使用强制转化,得到的是原整数的ASCII码值. 2.class.parse(string类型的变量), ...
随机推荐
- Spring Boot使用AOP在控制台打印请求、响应信息
AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等. AOP简介 AOP全称Aspect Oriented Programming,面向切面,AOP主要实现的 ...
- 轻松理解 Java HashMap 和 ConcurrentHashMap
前言 Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据. 本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 ...
- Java学习笔记之——IO
一. IO IO读写 流分类: 按照方向:输入流(读),输出流(写) 按照数据单位:字节流(传输时以字节为单位),字符流(传输时以字符为单位) 按照功能:节点流,过滤流 四个抽象类: InputStr ...
- Simditor 富文本编辑器多选图片上传、视频连接插入
simditor 是一个基于浏览器的所见即所得的文本编辑器.Simditor 富文本编辑器, 支持多选图片上传, 视频连接插入, HTML代码编辑以及常用富文本按钮,支持的浏览器:IE10.Firef ...
- 2019-02-20 在PyPI测试平台发布Python包
参考Packaging Python Projects, 源码在nobodxbodon/test-package-for-pypi 包名/__init__.py: 测试变量 = "值&quo ...
- android 摇一摇+震动+声音效果
文章链接:https://mp.weixin.qq.com/s/n6EXvfmpNPtWM1kEnGgwUA 摇一摇红包效果已经是老生常谈的了,利用手机的传感器识别摇一摇,同时过程中进行动画+震动+声 ...
- axios中的this指向问题
最近在使用vue过程中,使用axios进行接口请求,确发现取不到值,返回为undefined. show (item) { let searchText = item.keyword console. ...
- Android远程桌面助手(Build 0737)
Android Remote Displayer and Controller Build 0737, Aug 02, 2017 新增功能: 录制MP4文件,突破了Android原生180S的限制 截 ...
- Java基础static的探究
static方法就是没有this的方法. 在static方法内部不能调用非静态方法, 但是在非静态的方法中可以调用静态的方法和变量. 而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用stati ...
- Spark之Pipeline处理模式
一.简介 Pipeline管道计算模式:只是一种计算思想,在数据处理的整个流程中,就想水从管道流过一下,是顺序执行的. 二.特点 1.数据一直在管道中,只有在对RDD进行持久化[cache,persi ...