来源:自学PHP网 时间:2019-08-07 16:47 作者:小飞侠 阅读:次
[导读] 详解Golang编程中的常量与变量...
Go语言常量 常量可以是任何像一个整型常量,一个浮点常量,字符常量或字符串文字的基本数据类型。还有枚举常量。 常量是一样,只是它们的值不能自己定义后进行修改常规变量处理。 整型常量 一个整数文字也可以有一个后缀为U和L的组合,分别为无符号和长整型。后缀可以是大写或小写,并且可以以任意顺序。 这里是整数常量的一些例子:
复制代码 代码如下:
212 /* Legal */ 215u /* Legal */ 0xFeeL /* Legal */ 078 /* Illegal: 8 is not an octal digit */ 032UU /* Illegal: cannot repeat a suffix */ 以下是不同类型的整型常量的例子:
复制代码 代码如下:
85 /* decimal */ 0213 /* octal */ 0x4b /* hexadecimal */ 30 /* int */ 30u /* unsigned int */ 30l /* long */ 30ul /* unsigned long */ 浮点文本(常量) 浮点字面具有一个整数部分,一个小数点,一个小数部分,和一个指数部分。你可以表示十进制形式或指数形式浮点文字。 同时采用十进制形式表示,则必须包括小数点,指数,或两者并用而指数形式表示,则必须包括整数部分,小数部分,或者两者兼而有之。有符号的指数,通过e或E表示 下面是浮点面值的一些例子:
复制代码 代码如下:
3.14159 /* Legal */ 314159E-5L /* Legal */ 510E /* Illegal: incomplete exponent */ 210f /* Illegal: no decimal or exponent */ .e55 /* Illegal: missing integer or fraction */ 转义序列 有一些字符在Go中,前面有一个反斜杠他们将有特殊的含义,它们被用来表示类似的换行符(\n)或制表符(\t)。在这里,有一些这样的转义序列代码的列表: 以下为例子来说明一些转义字符序列:
复制代码 代码如下:
package main import "fmt" func main() { 当上述代码被编译和执行时,它产生了以下结果:
复制代码 代码如下:
Hello World! 字符串文字 字符串文字或常量用双引号“”。一个字符串包含类似于字符文字字符:普通字符,转义序列和通用字符。 您可以使用字符串和分隔使用空格打破一个长行成多行。 下面是字符串的一些例子。所有的三种形式是相同的字符串。
复制代码 代码如下:
"hello, dear" "hello, \ dear" "hello, " "d" "ear" const 关键字 您可以使用 const 前缀来声明常量使用特定的类型如下:
复制代码 代码如下:
const variable type = value; 下面的例子说明了它的细节:
复制代码 代码如下:
package main import "fmt" func main() { area = LENGTH * WIDTH 当上述代码被编译和执行时,它产生了以下结果:
复制代码 代码如下:
value of area : 50 请注意,这是一个良好的编程习惯大写定义常量。 Go语言变量 一个变量名可以由字母,数字和下划线。它必须以字母或下划线。大写和小写字母是不同的,因为Go是区分大小写的。基于该基本类型在前面的章节中说明的那样,将有以下基本变量类型: Go编程语言也可以定义各种其他类型的变量,我们将在以后的章节列出,如:枚举,指针,数组,结构,联合,等等。对于本章覆盖,让我们只学习研究的基本变量类型。 在Go中变量定义:
复制代码 代码如下:
var variable_list optional_data_type; 在这里,optional_data_type可以包括字节,整型,float32,complex64,布尔或任何用户定义的对象等有效Go的数据类型,variable_list可以由用逗号分隔的一个或多个标识符名称。一些有效的声明如下所示:
复制代码 代码如下:
var i, j, k int; var c, ch byte; var f, salary float32; d = 42; 这一行var i, j, k; 既声明并定义了变量i,j和k;这指示编译器创建一个名为i,j和k的 int类型变量。 变量可以初始化(分配初始值)在他们的声明。变量的类型是由编译器自动根据传递给它的值判断。初始化包括一个等号后跟一个常量表达式如下:
复制代码 代码如下:
variable_name = value; 一些实例是:
复制代码 代码如下:
d = 3, f = 5; // declaration of d and f. Here d and f are int 对于没有初始化定义:具有静态存储时间变量的隐含零初始化(所有字节的值为0);所有其它变量的初始值是它们的数据类型的零值。 静态类型声明 示例
复制代码 代码如下:
package main import "fmt" func main() { 让我们编译和运行上面的程序,这将产生以下结果:
复制代码 代码如下:
20 x is of type float64 动态类型声明/类型推断 动态类型变量声明要求编译器解释的基础上传递给它值变量的类型。编译器不需要一个变量静态有类型的必然要求。 示例
复制代码 代码如下:
package main import "fmt" func main() { y := 42 让我们编译和运行上面的程序,这将产生以下结果:
复制代码 代码如下:
20 42 x is of type float64 y is of type int 混合变量声明 不同类型的变量可以一步到位使用类型推断声明。 例子
复制代码 代码如下:
package main import "fmt" func main() { 让我们编译和运行上面的程序,这将产生以下结果:
复制代码 代码如下:
3 4 foo a is of type int b is of type int c is of type string 在Go中的左值和右值: 在Go中有两种表达式: lvalue : 引用一个存储器位置的表达式被称为“左值”表达。左值可能显示为任一左手或赋值的右侧。 rvalue : 术语右值是指被存储在存储器中的某些地址的数据值。右值是不能分配给它的值,这意味着右值可能出现在赋值的右侧而不是左侧的表达式。 变量是左值等都可能出现在赋值的左侧。数字文字是右值,因此可能不会被分配,不能出现在左侧。下面是一个有效语句:
复制代码 代码如下:
x = 20.0 但是,下面是不是一个有效的声明,并会产生编译时错误:
复制代码 代码如下:
10 = 20 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com