go基本类型使用细节

整型的使用细节

  • Golang 各整数类型分:有符号无符号int uint的大小和系统有关。
  • Golang 的整型默认声明为int
var n1 = 100
fmt.Printf('n1的数据类型%T',n1)
  • 如何在程序查看某个变量的字节大小和数据类型(使用较多)
var n2 int64 = 10
fmt.Printf('n2的 数据类型 %T  n2占用的字节数是 %d',n2,unsaft.Sizeof(n2))

浮点型使用细节

  • Golang 浮点类型有固定的范围字段长度不受具体OS(操作系统)的影响

  • Golang 的浮点型默认声明为float64 类型。

  • 浮点型常量有两种表示形式

十进制数形式:如:5.12 .512 (必须有小数点)
科学计数法形式:如:5.1234e2 = 5.12 * 10 的2 次方5.12E-2 = 5.12/10 的2 次方
  • 通常情况下,应该使用float64 ,因为它比float32 更精确。[开发中,推荐使用float64]

字符类型(char)

%c 把对应的数字,格式化为unicode对应的字符
%d把字符型常量,格式化为unicode对应的数字

var byte c1='a'
var byte c2='0'
fmt.Println("c1=",c1)
fmt.Println("c2=",c2)
//希望格式化输出
fmt.Printf("c1=%c  c2=%c",c1,c2)

var c3 int = '北'
fmt.Printf("c3=%c  对应用码值是%d", c3,c3)

当我们直接输出byte值时,就是输出对应字符的码值

  1. 字符常量是用单引号('')括起来的单个字符。例如:var c1 byte = 'a' var c2 int = '中' var c3 byte = '9'
  2. Go 中允许使用转义字符 '\’来将其后的字符转变为特殊字符型常量。例如:var c3 char = ‘\n’ // '\n'表示换行符
  3. Go 语言的字符使用 UTF-8 编码 ,如果想查询字符对应的 utf8 码值 http://www.mytju.com/classcode/tools/encode_utf8.asp
    英文字母-1个字节 汉字-3个字节
  4. 在 Go 中,字符的本质是一个整数,直接输出时,是该字符对应的 UTF-8 编码的码值。
  5. 可以直接给某个变量赋一个数字,然后按格式化输出时%c,会输出该数字对应的unicode字符

字符类型(char)本质探讨

  1. 字符型 存储到 计算机中,需要将字符对应的码值(整数)找出来
    存储:字符--->对应码值---->二进制-->存储
    读取:二进制----> 码值 ----> 字符 --> 读取
  2. 字符和码值的对应关系是通过字符编码表决定的(是规定好)
  3. Go语言的编码都统一成了utf-8。非常的方便,很统一,再也没有编码乱码的困扰了

string 使用注意事项和细节

1、 Go语言的字符串的字节使用UTF-8编码标识Unicode文本,这样Golang统一使用UTF-8编码,中文 乱码问题不会再困扰程序员。
2、字符串一旦赋值了,字符串就不能修改了:在 Go 中字符串是不可变的
3、 字符串的两种表示形式
1) 双引号, 会识别转义字符
2) 反引号,以字符串的原生形式输出,包括换行和特殊字符,可以实现防止攻击、输出源代码等效果
4、 字符串拼接方式 用 +
5、当一行字符串太长时,需要使用到多行字符串,+号放在上一行,因为Golang会默认在后面加;

基本数据类型的默认值(零值)如下:

  • 整型 0
  • 浮点型 0
  • 字符串是 ""
  • 布尔型是 false

%v是按照变量的原值输出

image.png

基本数据类型的相互转换

Go 在不同类型的变量之间赋值时需要显式转换。也就是说 Golang 中数据类型不能自动转换

  • 基本语法

表达式 T(v) 将值 v转换为类型 T
T: 就是数据类型,比如 int32,int64,float32 等等 v: 就是需要转换的变量

image.png

基本数据类型相互转换的注意事项

1、Go中,数据类型的转换可以是从表示范围小-->表示范围大,也可以范围大--->范围小
2、被转换的是变量存储的数据(即值),变量本身的数据类型并没有变化!
3、 在转换中,比如将 int64 转成 int8 【-128---127】 ,编译时不会报错,只是转换的结果是按 溢出处理,和我们希望的结果不一样。 因此在转换时,需要考虑范围.

import (
    _ "fmt"
)

引入一个包时如果想暂时不用这个包,可以前面加 _键先忽略

基本数据类型和 string 的转换

将基本数据类型(int float bool byte)转成 string,或者将 string 转成基本数据类型

  • 方式
    1、fmt.Sprintf("%参数", 表达式) (推荐)

    image.png

  • %参数详见 Go标准库文档 fmt-> Sprintf部分
    2、用函数的方式转

string转基本数据类型

package main

import(
    "fmt"
    "strconv"
)
//演示string转基本类型
func main(){
    var str = "true"
    var b bool
    // _ 忽略 bool 返回的error
    b,_ = strconv.ParseBool(str)
    fmt.Printf("b type %T b=%v\n",b,b)

    var str2 string = "1234590"
    var n1 int64 
    var n2 int
    //返回的是int64位
    n1,_ = strconv.ParseInt(str2,10,64)
    n2 = int(n1)

    fmt.Printf("n1 type %T n1=%v\n",n1,n1)
    fmt.Printf("n2 type %T n2=%v\n",n2,n2)
    
    var str3 string = "123.456"

    var f1 float64
    f1,_ = strconv.ParseFloat(str3,64)
    fmt.Printf("f1 type %T f1=%v\n",f1,f1)
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容