基础篇-php常量和go常量比较 文章 2021-09-06 10:49:29 +0800 CST 阅读:2290 评论数:0 [TOCM] [TOC] # 前言 快速的学习一门新语言,我们可以找到和自己精通语言的共同之处和不同之处,以便快速理解和掌握;首先就是基础语法,这里我们对PHP 和 go 常量`CONST`的共同之处和不同之处做一下比较。 # 共同之处 ## 定义 都是关键字 `const` 定义 ## 使用场景 通常都是用于存储不会改变的数据 ## 语法(go 隐式定义) 2者都一样,都是使用const定义,如果`go` 使用隐式语法定义那么就是一样的,也就是说go在定义常量可以不指定其类型,go在必要时刻会根据上下文获取相关类型。 例如: - php ```php const A = 1; ``` - go ```go const B = 1 ``` 在语法上是不是非常相似呢?掌握了`PHP`的常量就掌握了`go`的常量吧。 ## 赋值、涉及计算过程 2者都可以对值进行初始化计算,但是**`常量的值通常都是开始就能够确定的`**。 例如: - php ```php //正确的 const A = 1 + 2; //错误的 const A = mt_rand(1,10); ``` - go ```go const A = 1 + 1 ``` # 不同之处 ## 语法(go 显式定义) 所以在`go`显示定义的情况下,语法有所不一样,因为`go`是强语言类型,因此要规定常量类型。 - PHP ```php const A = 1; ``` - go ```go const A int = 1 ``` ## 数据类型 - 使用 const 关键字定义常量时,只能包含标量数据(`bool`、`int`、`float` 、`string`)。可以将常量定义为一个表达式,也可以定义为一个 `array`这个应该是5.6+版本。还可以定义 `resource `为常量,但应尽量避免,因为可能会造成不可预料的结果。 - go 存储在常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。 ## 赋值形式 `go` 在赋值的语法上有更加多元化的使用;`PHP`中多个常量需要多个`identifier ` 例如: - `go` 常量也允许使用并行赋值的形式 ```go const Monday, Tuesday, Wednesday, Thursday, Friday, Saturday = 1, 2, 3, 4, 5, 6 ``` - 常量还可以用作枚举 ```go const ( Unknown = 0 Female = 1 Male = 2 ) ``` # 总结 `php` 和 `go` 在使用场景上可以理解为一样,都可以进行计算标量值,go在定义赋值更为多元化,总之差别不大,看下基础语法就能很容易的理解。