当前位置: 首页 > news >正文

域名解析网站建设大连专业html5网站建设

域名解析网站建设,大连专业html5网站建设,登录到wordpress后台,常州被约谈企业主公司发告基本数据类型 Go 原生支持的数值类型有哪些#xff1f; Go 语言的类型大体可分为基本数据类型、复合数据类型和接口类型这三种。 其中#xff0c;我们日常 Go 编码中使用最多的就是基本数据类型#xff0c;而基本数据类型中使用占比最大的又是数值类型。 整型 Go 语言的…基本数据类型 Go 原生支持的数值类型有哪些 Go 语言的类型大体可分为基本数据类型、复合数据类型和接口类型这三种。 其中我们日常 Go 编码中使用最多的就是基本数据类型而基本数据类型中使用占比最大的又是数值类型。 整型 Go 语言的整型主要用来表示现实世界中整型数量等。它可以分为平台无关整型和平台相关整型这两种它们的区别主要就在这些整数类型在不同 CPU 架构或操作系统下面它们的长度是否是一致的。 平台无关整型 它们在任何 CPU 架构或任何操作系统下面长度都是固定不变的。 有符号整型int8-int64和无符号整型uint8-uint64的本质差别在于最高二进制位bit 位是否被解释为符号位这点会影响到无符号整型与有符号整型的取值范围。Go 采用 2 的补码Two’s Complement作为整型的比特位编码方法。因此我们不能简单地将最高比特位看成负号把其余比特位表示的值看成负号后面的数值。Go 的补码是通过原码逐位取反后再加 1 得到的。 平台相关整型 与平台无关整型对应的就是平台相关整型它们的长度会根据运行平台的改变而改变。Go 语言原生提供了三个平台相关整型它们是 int、uint 与 uintptr。 由于这三个类型的长度是平台相关的所以我们在编写有移植性要求的代码时千万不要强依赖这些类型的长度。如果不知道这三个类型在目标运行平台上的长度可以通过 unsafe 包提供的 SizeOf 函数来获取。 整型的溢出问题 如果这个整型因为参与某个运算导致结果超出了这个整型的值边界我们就说发生了整型溢出的问题。由于整型无法表示它溢出后的那个“结果”所以出现溢出情况后对应的整型变量的值依然会落到它的取值范围内只是结果值与我们的预期不符导致程序逻辑出错。 字面值与格式化输出 Go 语言在设计开始就继承了 C 语言关于数值字面值Number Literal的语法形式。早期 Go 版本支持十进制、八进制、十六进制的数值字面值形式。Go 1.13 版本中Go 又增加了对二进制字面值的支持和两种八进制字面值的形式。为提升字面值的可读性Go 1.13 版本还支持在字面值中增加数字分隔符“_”分隔符可以用来将数字分组以提高可读性。反过来我们也可以通过标准库 fmt 包的格式化输出函数将一个整型变量输出为不同进制的形式。 浮点型 浮点型的二进制表示 Go 语言提供了 float32 与 float64 两种浮点类型它们分别对应单精度与双精度浮点数值类型。 不过Go 语言中没有提供 float 类型。换句话说Go 提供的浮点类型都是平台无关的。无论是 float32 还是 float64它们的变量的默认值都为 0.0不同的是它们占用的内存空间大小是不一样的可以表示的浮点数的范围与精度也不同。 浮点数在内存中的二进制表示Bit Representation要比整型复杂得多 浮点数在内存中的二进制表示分三个部分符号位、阶码即经过换算的指数以及尾数。这样表示的一个浮点数它的值等于 ( − 1 ) s ∗ 1. M ∗ 2 E − o f f s e t (-1)^s * 1.M * 2 ^{E-offset} (−1)s∗1.M∗2E−offset。 当符号位为 1 时浮点值为负值当符号位为 0 时浮点值为正值。公式中 offset 被称为阶码偏移值。 单精度float32与双精度float64浮点数在阶码和尾数上的不同 单精度浮点类型float32为符号位分配了 1 个 bit为阶码分配了 8 个 bit剩下的 23 个 bit 分给了尾数。而双精度浮点类型除了符号位的长度与单精度一样之外其余两个部分的长度都要远大于单精度浮点型阶码可用的 bit 位数量为 11尾数则更是拥有了 52 个 bit 位。 字面值与格式化输出 Go 浮点类型字面值大体可分为两类一类是直白地用十进制表示的浮点值形式。这一类我们通过字面值就可直接确定它的浮点值。另一类则是科学计数法形式。采用科学计数法表示的浮点字面值我们需要通过一定的换算才能确定其浮点值。而且在这里科学计数法形式又分为十进制形式表示的和十六进制形式表示的两种。6674.28e-2 // 6674.28 * 10^(-2) 66.742800 .12345E5 // 0.12345 * 10^5 12345.000000 0x2.p10 // 2.0 * 2^10 2048.000000 0x1.Fp0 // 1.9375 * 2^0 1.937500复数类型 Go 提供两种复数类型它们分别是 complex64 和 complex128complex64 的实部与虚部都是 float32 类型而 complex128 的实部与虚部都是 float64 类型。如果一个复数没有显示赋予类型那么它的默认类型为 complex128。关于复数字面值的表示我们其实有三种方法 第一种我们可以通过复数字面值直接初始化一个复数类型变量var c 5 6i。第二种Go 还提供了 complex 函数方便我们创建一个 complex128 类型值var c complex(5, 6) // 5 6i。第三种你还可以通过 Go 提供的预定义的函数 real 和 imag来获取一个复数的实部与虚部返回值为一个浮点类型var c complex(5, 6) // 5 6i r : real(c) // 5.000000 i : imag(c) // 6.000000字符串类型 在 Go 中字符串类型为 string。 Go 语言通过 string 类型统一了对“字符串”的抽象。这样无论是字符串常量、字符串变量或是代码中出现的字符串字面值它们的类型都被统一设置为 string。string 类型的数据是不可变的提高了字符串的并发安全性和存储利用率。 Go 字符串的组成 Go 语言中的字符串值也是一个可空的字节序列字节序列中的字节个数称为该字符串的长度。一个个的字节只是孤立数据不表意。字符串是由一个可空的字符序列构成。 rune 类型与字符字面值 Go 使用 rune 这个类型来表示一个 Unicode 码点。rune 本质上是 int32 类型的别名类型它与 int32 类型是完全等价的。一个 rune 实例就是一个 Unicode 字符一个 Go 字符串也可以被视为 rune 实例的集合。我们可以通过字符字面值来初始化一个 rune 变量。在 Go 中字符字面值有多种表示法最常见的是通过单引号括起的字符字面值。我们还可以使用 Unicode 专用的转义字符\u 或\U 作为前缀来表示一个 Unicode 字符。由于表示码点的 rune 本质上就是一个整型数所以我们还可用整型值来直接作为字符字面值给 rune 变量赋值。 字符串字面值 字符串是字符的集合我们需要把表示单个字符的单引号换为表示多个字符组成的字符串的双引号。string 类型其实是一个“描述符”它本身并不真正存储字符串数据而仅是由一个指向底层存储的指针和字符串的长度字段组成的。我们直接将 string 类型通过函数 / 方法参数传入也不会带来太多的开销。因为传入的仅仅是一个“描述符”而不是真正的字符串数据。 Go 字符串类型的常见操作 下标 在字符串的实现中真正存储数据的是底层的数组。字符串的下标操作本质上等价于底层数组的下标操作。var s 中国人 fmt.Printf(0x%x\n, s[0]) // 0xe4字符“中” utf-8编码的第一个字节通过下标操作我们获取的是字符串中特定下标上的字节而不是字符。 字符迭代 Go 有两种迭代形式常规 for 迭代与 for range 迭代。通过这两种形式的迭代对字符串进行操作得到的结果是不同的。通过常规 for 迭代对字符串进行的操作是一种字节视角的迭代每轮迭代得到的的结果都是组成字符串内容的一个字节以及该字节所在的下标值这也等价于对字符串底层数组的迭代。通过 for range 迭代我们每轮迭代得到的是字符串中 Unicode 字符的码点值以及该字符在字符串中的偏移值。我们可以通过这样的迭代获取字符串中的字符个数而通过 Go 提供的内置函数 len我们只能获取字符串内容的长度字节个数。获取字符串中字符个数更专业的方法是调用标准库 UTF-8 包中的 RuneCountInString 函数。 字符串连接 Go 原生支持通过 / 操作符进行字符串连接。虽然通过 / 进行字符串连接的开发体验是最好的但连接性能就未必是最快的了。除了这个方法外Go 还提供了 strings.Builder、strings.Join、fmt.Sprintf 等函数来进行字符串连接操作。 字符串比较 Go 字符串类型支持各种比较关系操作符包括 、! 、、、 和 。在字符串的比较上Go 采用字典序的比较策略分别从每个字符串的起始处开始逐个字节地对两个字符串类型变量进行比较。 当两个字符串之间出现了第一个不相同的元素比较就结束了这两个元素的比较结果就会做为串最终的比较结果。如果出现两个字符串长度不同的情况长度比较小的字符串会用空元素补齐空元素比其他非空元素都小。 鉴于 Go string 类型是不可变的所以说如果两个字符串的长度不相同那么我们不需要比较具体字符串数据也可以断定两个字符串是不同的。但是如果两个字符串长度相同就要进一步判断数据指针是否指向同一块底层存储数据。如果还相同那么我们可以说两个字符串是等价的如果不同那就还需要进一步去比对实际的数据内容。 字符串转换 Go 支持字符串与字节切片、字符串与 rune 切片的双向转换并且这种转换无需调用任何函数只需使用显式类型转换就可以了。
http://wiki.neutronadmin.com/news/390483/

相关文章:

  • 网站建设维护公司排名个人网站主页
  • 优秀个人网站做网站标签栏的图片大小
  • 宁德营销型网站建设网站被降权表现
  • 网站备案后经营个性化网页设计
  • 优化网站的软件下载建筑工程网校排行榜
  • 最便宜的网站建设建设个人博客网站制作
  • 公司网站建设属于软件销售国外企业网站设计欣赏
  • pdf怎么做电子书下载网站微信小程序开通流程
  • 怎样网站优化公司个人网站备案要多久
  • 网站的关键词怎么设置南京百度seo
  • 懒人做图网站最新军事新闻热点事件
  • 发布了一个网站 显示建设中表格做网站
  • 智能网站建设维护软件手机网站 焦点图
  • 北京市保障性住房建设中心网站wordpress二次开发手册
  • 素材网站怎么推广做网站跟客人怎么沟通
  • 中小型企业网站建设申请企业资助建设网站
  • 怎么给自己的品牌做网站如何做好网页设计
  • 网站建设单页装修公司怎么找客源最有效
  • 大连网站建设哪里好中国建筑集团有限公司怎么样
  • 网站开发广告语大全品牌策划设计
  • 常德建设网站多少钱如何搭建wordpress商城
  • 站长之家0西宁建设公司网站
  • 找人做jsp网站wordpress网站根目录
  • 土巴兔网站开发wordpress .htaccess 301重定向
  • 建设网站案例优化大师官方正版下载
  • 网站建设一年多少钱如何调整
  • 温州企业网站设计有关做聚合物电池公司的网站
  • 长沙县好的建站按效果付费做网店装修的网站有哪些内容
  • 哪里有建设网站中的视频下载公司装修装饰
  • 建站模板与网站案例展示职业生涯规划