【06】-Go 语言基本概念-标识符-数据类型-变量-常量

murphyzhao · · 99569 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

# Go 语言基本概念-标识符-数据类型-变量-常量 - 关键字或保留字 | 1 | 2 | 3 | 4 | 5 | | :---- | :---- | :---- | :---- | :---- | | 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| - 预定义标识符 | 1 | 2 | 3 | 4 | 5 | | :---- | :---- | :---- | :---- | :---- | | append | copy | print | println | real | | bool | byte | string | uintptr | new | | true | false | iota | nil | panic | | int | int8 | int16 | int32 | int64| | uint | uint8 | uint16 | uint32 | uint64| | complex | complex64 | complex128 | float32 | float64| | cap | close | imag | make | len| | recover | | | | | - 数据类型 - 布尔型 - 数值类型 - 字符串类型 - 派生类型(指针、数组、结构体、Channel、函数、切片、interface、Map 类型) 数值类型中 rune 类型,类似 int32;uintptr 无符号整形,用于存放一个指针。 派生类型中,channel、切片、interface、Map 类型比较陌生。 - 变量 ``` var identifier type // 定义一个 identifier 变量,类型为 type,变量没有初始化,默认为 0。 var identifier1, identifier2 type // 定义多个类型为 type 的变量 var v_name = value // 带初始值的变量声明,省略了类型,编译器自动判断 v_name := value // 省略 var 的变量声明,左侧必须为未声明的变量,智能用于函数体中,不能用于声明全局变量。这种声明称为初始化声明。 // 这种因式分解关键字的写法一般用于声明全局变量 var ( vname1 v_type1 vname2 v_type2 ) ``` 注意区分值类型和引用类型。 空白标识符 `_`,是只写的,常用于抛弃值。 - 常量 常量在程序运行过程中不能被修改。 ``` const identifier [type] = value const c_name1, c_name2 = value1, value2 ``` 常量还可以用作枚举: ``` const ( Unknown = 0 Female = 1 Male = 2 ) ``` - 特殊常量 iota iota,可以认为是一个可以被编译器修改的常量。参考[菜鸟教程](https://www.runoob.com/go/go-constants.html)。 - 关于 `unsage.Size(字符串)` 表达式的返回值问题 go 语言的 string 是一种数据类型,这个数据类型占用 16 字节空间,前 8 字节是一个指针,指向字符串值的地址,后八个字节是一个整数,标识字符串的长度;注意 go 语言的字符串内部并不以 '\0' 作为结尾,而是通过一个长度域来表示字符串的长度。

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

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

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