Go:保留关键字及基本数据类型

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

1 命名规范

    在Go中几乎所有的东西都是有名字或标识符的(类似于C家族语言),且它们是对大小写敏感的。相应的规则如下:
  • 必须以字符开头(所有Unicode UTF-8中的字符 或 下划线“_”)
  • 后面可以跟0或多个字符或数字,如:x56, _x32等。
  • 不能以数字开头或系统保留关键字和操作符。如:1ab, case, a+b。
  • 下划线"_"本身在Go中是一个特殊的标识符,称为空标识符。可以代表任何其它的标识符,但是它对应的值会被忽略。所以仅能被作为占位符使用。
    同时,在Go中也支持匿名,如匿名变量、自定类型和函数。

2 系统关键字或保留字

    在Go中,为了简化代码编译过程中对代码的解析,其定义的保留关键字只有25个。详见如下:
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

    除了保留关键字外,外另还提供了36个预定的标识符,其包括基础数据类型和系统内嵌函数。
append bool byte cap close complex
complex64 complex128 uint16 copy false float32
float64 imag int int8 int16 uint32
int32 int64 iota len make new
nil panic uint64 print println real
recover string true uint uint8 uintprt

3 内嵌数据类型
  • Boolean类型:
    • 系统为此类型定义了两个常量:true 和 false.
    • 初始默认值为:false。
    • 格式化输出时的格式字符串为:%t。
    • 实例代码:

    • 输出结果为:
      • flag1 = true
      • 
!flag1 = false

      • GlobalFlag = true
      • (flag1 && flag2) = false
      • (flag1 || flag2) = true

  • Byte类型:
    • 为uint8的别外,即只有8个bit。
  • 数字类型:
    • 整数类型:
      • 有符号整数:int8, int16, int32, int64和int(此类型会根据特定的平台可能会有所不同)
      • 无符号整数:uint8, uint16, uint32, uint64和uint (此类型会根据特定的平台可能会有所不同)
      • 初始默认值为:0。
      • 格式化输出时的格式字符串为:%d,输出16进制:%x或%X;8进制:%o。
      • 实例代码:

      • 输出结果为:
        • i8=9, i=27, ui32=30, ui64=40, defInt=0
        • 
i8=11, i=1b, ui32=1E, ui64=101000
        • 
The value=27, The Address=0x117d0238
    • 浮点类型:float32 和 float64
      • 初始默认值为:0.0。
      • 注意:这里没有float的类型,且两个浮点数比较时不能使用== 和 !=
      • 格式化输出时的格式字符串为:%g,%f则对应浮点类型的指针;%e则对应科学计数法办输出;%n.mg用于指定小数位输出。
      • 实例代码:

      • 输出结果:
        • f32 = 2.054545, f64=4.054544925689697, default=0
        • 
f32 = 2.05
    • 复数类型:
      • complex64:实数与虚数都是32位
      • complex128: 实数与虚数都是64位
      • real(c):获取实数部分
      • imag(c):获取虚数部分
      • 格式化输出时的格式字符串为:%v, 另外也可以使用%f输出实部和虚部。
      • 实例代码:

      • 输出结果:
        • The com1=(2+3i), The com2=(3+4i)
        • The com2=(5+7i)

        • The real of com2=5, The imag of com2=7
  • 字符类型:
    • 严格的说,在Go中没有此类型类型,它是特殊的整数类型。
    • 它对应uint8类型,对传统的ASCII码对应,占1byte。
    • 同时也支持Unicode(UTF-8)的编码,所以它可能点多个byte,被称为Unicode code points或runes。此时它对应的int32的数字类型。
    • 包含在单引号中。
    • Unicode的字符通常以16进制的形式表示(\u+4或\U+8)
    • 格式化输出时的格式字符串为:%c;%v或%d则显示对应的整数值;%U则输出:U+hhhh
  • 字符串类型:
    • 一串UTF-8编码格式的字符(可能占1~4byte)---- Java中的字符都是占2bytes。
    • 包含在双引号中,只能在独立的一行内。(Interpreted string)
    • 包含在反引号中,可以跨越多行。(raw string)
    • 注:Go所有的代码都是UTF-8格式,所以不存在对字符进行编码和解码。
    • 它是不可变的值类型,所以不能直接修改字符串。
  • 指针类型:
    • 占4byte大小。
    • 各种数据类型都有对应的指针类型。
    • 声明方法类似于C中对指针的声明: *type。

4 操作符
  • 逻辑运算符:
    • 与:&&,或:||,非:!。
    • ==,!=,<,>,<=,>=
  • 位运算符:
    • 只能工作在int类型的变量上。
    • 按位与:&,按位或:|,按位异或:^
    • 左移:<<,右移:>>。(空位补0)
  • 算术运算符:
    • +,-,*,/。
    • 取模:%
    • 简化操作:-=,*=, +=, %=
    • ++, --。(只能在数字变量的后面,不能放在开头,这是与C,Java不一样的地方)。
  • 优先级:(7 -> 1:由高到低)


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

本文来自:CSDN博客

感谢作者:aaron_ye

查看原文:Go:保留关键字及基本数据类型

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

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