Golang的基础数据类型-字符型

         Golang的基础数据类型-字符型

                            作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

 

一.字符型概述

  Go语言中的字符有两种,即uint8类型和rune类型。
    uint8类型:
      我们也可以称之为byte型,代表了ASCII编码表中的一个字符。
      ASCII编码表大家可以自行百度,谷歌查找,大致分为三类:0-31(表示控制字符,在键盘上找不到对应的按键,但是可以使用转义字符表示),32-126(键盘上可以找到的所有字符),127(删除键)

    rune类型:
      代表一个UTF-8字符,当需要处理中文,日文,或者其它国家的符合字符时,则需要用到rune类型。

  byte类型是uint8的别名,对于只占用1个字节的传统ASCII编码的字符来说,完全没问题。

 

二.字符型简单应用案例

1>.byte类型(是uint8的别名)

package main

import "fmt"

func main() {

    /*
        字符(byte)类型是uint8的别名(type为已存在的数据类型起一个别名),在builtin.go文件中可以看到如下的代码:
            type byte = uint8

                ASCII编码表称为美国信息交换码,其结构大致如下:
            0-31:
                表示控制字符,在键盘上找不到对应的按键,但是可以使用转义字符表示
            32-126:
                键盘上可以找到的所有字符
            127:
                删除(del)键

        常见的转义字符如下:
            '\n':
                换行符,对应ASCII编码表的十进制是10
            '\t':
                水平制表符,对应ASCII编码表的十进制是9
            '\v':
                垂直制表符,对应ASCII编码表的十进制是11
            '\r':
                回车,对应ASCII编码表的十进制是13
            '0':
                数字字符0对应ASCII编码表的十进制为48
            'A':
                大写字母字符A对应ASCII编码表的十进制是65
            'a':
                小写字母字符a对应ASCII编码表的十进制是97
            'del':
                删除键对应ASCII编码表的十进制是127
    */
    var a byte = 'a'

    /*
        采用uint8数据格式打印,最终输出的是字符'a'在ASCII所对应的十进制数字编码值为97
    */
    fmt.Println(a)

    /*
        %c是一个占位符,表示输出一个字符类型数据。
    */
    fmt.Printf("a的类型为:[%T],a的值为:[%c]\n", a, a)

    var b = '0'
    fmt.Println(b)
}

2>.rune类型(是int32的别名)

package main

import "fmt"

func main() {

    /*
        rune代表一个UTF-8字符(支持中文编码),rune类型是int32的别名,在builtin.go文件中可以看到如下的代码:
            type rune = int32

        温馨提示:
            自动推导类型创建字符默认均是rune;
            rune是可以向下兼容byte,毕竟int32的数值范围要比uint8大很多倍。
    */

    //自动推导类型创建字符默认是rune类型;
    FirstName := ''

    fmt.Println(FirstName)

    fmt.Printf("FirstName的类型为:[%T],FirstName的值为:[%c]\n", FirstName, FirstName)
}

 

posted @ 2020-02-01 21:51  JasonYin2020  阅读(414)  评论(0编辑  收藏  举报