golang基础数据类型

binbin · · 450 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

一、整型使用细节

  • 分有符号和无符号,int unit 的大小和系统有关
var a int = 6 // 64 位操作系统  a 的符号为 int64
  • 整型默认声明为int
var a = 100 // a 的类型为int
  • byte 等价于int8,无符号,范围0-255,一般存储字符
  • rune 等价于int32,有符号,表示一个Unicode码,处理带有中文的字符串

二、浮点数使用细节

  • 有固定范围和字段长度,不受具体OS(操作系统)影响
  • 整型默认声明为float64
var a = 0.34 // a 的类型为float64
  • 浮点型常量有两种表示形式
十进制形式:如5.12   .512
科学计数法:5.1234e2 = 5.12*10的2次方 5.12E-2 = 5.12/10的2次方

三、字符类型使用细节

  • 字符常量是用单引号''括起来的单个字符。例如:
var c1 byte = 'a'
var c2 int = '中'
  • golang中字符本质是一个整数,直接输出时,是该字符对应的UTF-8编码的值
  • 字符是可以计算的,相当于一个整数
var n1 = 10 + 'a' // 10 + 97 = 107

四、基本数据类型转换细节

  • 在转换中,比如将int64 转成int8【-128---127】, 编译时不会报错,转换的结果是按溢出处理,和我们希望的结果不一致
var n1 int32 = 12
var n3 int8
var n4 int8
n3 = int8(n1) + 127 // 编译能通过,结果不是12 + 127,按溢出处理
n4 = int8(n1) + 128 // 编译通不过
fmt.Println(n4)
  • 基本数据类型转string
// 用Sprintf (个人推荐)
var num1 int = 99
var str string
str = fmt.Sprintf("%d", num1)~~~~
// 用strconv 函数
var n1 int = 99
str = strconv.FormatInt(int64(num3), 10)
  • string 数据类型转基本类型
var str string = "true"
var b bool
b, _ = strconv.ParseBool(str) // 会返回两个值,不想获取err,所有忽略

有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:binbin

查看原文:golang基础数据类型

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

450 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传