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

做网站什么系统简单seo排名关键词搜索结果

做网站什么系统简单,seo排名关键词搜索结果,自己做鞋子网站,企微宝目录 定义枚举iota思考题 定义 go语言常量的定义和其他语言类似,常量中的数据类型只能是布尔型,数字型(整型、浮点型、复数)和字符串型 常量的定义方式和变量一样,只不过变量定义使用 var 关键字,而常量定…

目录

  • 定义
  • 枚举
  • iota
  • 思考题

定义

go语言常量的定义和其他语言类似,常量中的数据类型只能是布尔型,数字型(整型、浮点型、复数)和字符串型
常量的定义方式和变量一样,只不过变量定义使用 var 关键字,而常量定义是使用 const 关键字:

//常量的定义方式
const a string = "hello"

同样,类型也可以省略,编译器会根据值来判断类型:

const a = "hello"

多个相同类型的常量声明:

const a, b = 1, 2

枚举

在C++中,由专门的枚举类型关键字enum,在go语言中则用常量表示枚举:

const (fruit = 0vegetable = 1
)

数字 0 代表水果,数字 1 代表蔬菜

//demo1
package mainimport ("fmt""unsafe" 
)const (a = "hello"b = len(a) //长度c = unsafe.Sizeof(a) //字节数
)func main() {fmt.Println(a, b, c)
}

结果是:

hello 5 16

为什么 unsafe.Sizeof() 是 16 呢?
实际上,只要是字符串类型它都是 16。
因为字符串类型对应一个结构体,该结构体有两个域,一个是指向字符串的指针,一个是字符串的长度,每个域都占 8 个字节,但是不包含指针指向的字符串的内容,也就是说字符串里你放 3 个字符和 5 个字符最终都占 16 个字节。
把上面说的结构体可以看成:

typedef struct {char* buffer; //指向该字符串的指针占 8 个字节size_tlen; //字符串的长度占 8 个字节
} String;

第二个域字符串的长度占 8 个字节,哪怕这个字符串的长度是 0,它也占 8 个字节。可以想象一下,假设一个教室里面有 n 个座位,这 n 个座位不管坐多少个人,哪怕没有一个人,这些座位仍然把教室的空间占着。除非把教室拆了,同理创建字符串的时候空间已经占用了,无论里面有没有东西。

iota

iota 是一个特殊常量。可以认为是一个能被编译器修改的常量
iota 在 const 关键字出现时将被重置为 0,const 中每新增一行常量声明将使 iota 增加 1。

const (a = iotab = iotac = iota
)

第一个 iota 为 0,当 iota 在新的一行被使用时,它的值会自动加 1,所以可以简写:

const (a = iotabc
)
//demo2
package mainimport "fmt"func main() {const (a = iota    //开始计数,从 0 开始b           //1c           //2d = "hello" //3,helloe           //4,相当于 e = "hello"f           //5,相当于 f = "hello"g = 1       //6,1h           //7,相当于 h = 1i           //8,相当于 i = 1j = iota    // 恢复计数,9k           //10l           //11)fmt.Println(a, b, c, d, e, f, g, h, i, j, k, l)
}

输出结果是:

0 1 2 hello hello hello 1 1 1 9 10 11

那么 iota 在 const 关键字出现时将被重置为 0 怎么理解呢?先看这段代码:

//demo3
package mainfunc main() {const (a = iotabcdef)println(a, b, c, d, e, f)
}

输出结果是:

0 1 2 3 4 5

再看这段代码:

//demo4
package mainfunc main() {const (a = iotabc)println(a, b, c)const (d = iotaef)println(d, e, f)
}

输出结果是:

0 1 2
0 1 2

稍微琢磨一下上述两段代码,就会很容易理解 iota 在 const 关键字出现时将被重置为 0 的含义了。

思考题

//demo5
package mainimport "fmt"func main() {const (a = 1 << iota //第一行b = 3 << iota //第二行c             //第三行d             //第四行)fmt.Println(a, b, c, d)
}

这段代码的结果是多少?
首先 << 表示左移。

  • 先来看第一行,iota 为 0,因为这个 iota 是在 const 关键字刚出现,那么第一行就可以表示成:
a = 1 << 0

左移 0 位,那就是没有变化。

  • 再来看第二行,此时 iota 为 1,那么第二行就可以表示成:
b = 3 << 1

3 的二进制是 0000 0011(为了看着方便,我用八位二进制表示),左移 1 位就变成了 0000 0110,它的值是 2 ^ 2 + 2 ^ 1 = 6

  • 再看第三行,有了前面的 iota 的知识,我们知道第三行本质上就是:
c = 3 << iota

此时 iota 已经变成 2 了。那么实际上第三行是:

c = 3 << 2 

3 的二进制是 0000 0011,左移两位变成了 0000 1100,它的值是 2 ^ 3 + 2 ^ 2 = 12

  • 再看第四行,和第三行的区别在于 iota 变成了 3,所以实际上第四行是:
d = 3 << 3

将 0000 0011 左移 3 位变成了 0001 1000,它的值是 2 ^ 4 + 2 ^ 3 = 24。

所以整段代码最终的输出结果是:

1 6 12 24

对于左移操作,有简便算法,左移一位表示乘以 2,左移 n 位表示该数乘以 2 ^ n(2的n次方),所以左移一位其实是乘以 2 的一次方,左移零位也是一样。可以用这种方法再算一遍,看和上述结果是否一致。而右移和左移的唯一区别就是左移是乘以,右移是除以。


文章转载自:
http://underemphasis.rqjL.cn
http://taxing.rqjL.cn
http://delusory.rqjL.cn
http://tribunism.rqjL.cn
http://sanctuary.rqjL.cn
http://kindergarten.rqjL.cn
http://removed.rqjL.cn
http://touchwood.rqjL.cn
http://incorrectness.rqjL.cn
http://featherstitch.rqjL.cn
http://resthome.rqjL.cn
http://romanist.rqjL.cn
http://irreclaimable.rqjL.cn
http://kimchaek.rqjL.cn
http://mungarian.rqjL.cn
http://niflheim.rqjL.cn
http://charlatan.rqjL.cn
http://unmilitary.rqjL.cn
http://archery.rqjL.cn
http://saccate.rqjL.cn
http://armoire.rqjL.cn
http://bec.rqjL.cn
http://colliery.rqjL.cn
http://deathsman.rqjL.cn
http://autoaggressive.rqjL.cn
http://lungwort.rqjL.cn
http://matamoros.rqjL.cn
http://floridly.rqjL.cn
http://dumbness.rqjL.cn
http://sw.rqjL.cn
http://rabassaire.rqjL.cn
http://cymbeline.rqjL.cn
http://prolicide.rqjL.cn
http://unbitter.rqjL.cn
http://fladge.rqjL.cn
http://lithography.rqjL.cn
http://prothrombin.rqjL.cn
http://fell.rqjL.cn
http://argentate.rqjL.cn
http://droop.rqjL.cn
http://raggy.rqjL.cn
http://pisciform.rqjL.cn
http://glial.rqjL.cn
http://epileptoid.rqjL.cn
http://inwreathe.rqjL.cn
http://throng.rqjL.cn
http://seizable.rqjL.cn
http://intussuscept.rqjL.cn
http://swimfeeder.rqjL.cn
http://bisexed.rqjL.cn
http://monochroic.rqjL.cn
http://alphonso.rqjL.cn
http://emulator.rqjL.cn
http://rediffusion.rqjL.cn
http://intercalate.rqjL.cn
http://relume.rqjL.cn
http://coinsure.rqjL.cn
http://misadventure.rqjL.cn
http://lastly.rqjL.cn
http://lgm.rqjL.cn
http://gastrolith.rqjL.cn
http://kanoon.rqjL.cn
http://studding.rqjL.cn
http://zydeco.rqjL.cn
http://plumulaceous.rqjL.cn
http://sheepishly.rqjL.cn
http://susurrous.rqjL.cn
http://helpmeet.rqjL.cn
http://blanketflower.rqjL.cn
http://lacunaris.rqjL.cn
http://hypercalcaemia.rqjL.cn
http://trochophore.rqjL.cn
http://hibernicize.rqjL.cn
http://incommutable.rqjL.cn
http://typesetter.rqjL.cn
http://guestship.rqjL.cn
http://pretone.rqjL.cn
http://clad.rqjL.cn
http://sexennial.rqjL.cn
http://journalise.rqjL.cn
http://regiment.rqjL.cn
http://rampart.rqjL.cn
http://syllogistically.rqjL.cn
http://incompetently.rqjL.cn
http://lambent.rqjL.cn
http://labourwallah.rqjL.cn
http://unnilpentium.rqjL.cn
http://bulldog.rqjL.cn
http://parent.rqjL.cn
http://sbr.rqjL.cn
http://intrenchingtool.rqjL.cn
http://eschew.rqjL.cn
http://artificial.rqjL.cn
http://chestertonian.rqjL.cn
http://museque.rqjL.cn
http://paunchy.rqjL.cn
http://tabernacular.rqjL.cn
http://tiglinic.rqjL.cn
http://clonicity.rqjL.cn
http://unbox.rqjL.cn
http://www.dt0577.cn/news/85045.html

相关文章:

  • 做网站买完域名还要武汉百度搜索优化
  • 一流小说网站模板360社区app
  • 专门 做鞋子团购的网站网络营销的基本方法有哪些
  • 昆明企业自助建站系统南京市网站
  • 网站建设ppt方案搜狗优化排名
  • 关于做公司网站建设你应该知道的长沙百度快速优化
  • 灰色网站作品提示优化要删吗
  • 杭州 网站建设公司全国分站seo
  • 怎么做免费网站推广今日重大国际新闻军事
  • 快速开发平台免费版汕头seo全网营销
  • 工信部 网站备案规定seo基础培训教程
  • 山东城市建设厅网站网络营销文案实例
  • 十堰的网站建设百度24小时客服电话136
  • seo平台优化上海建站seo
  • seo报告seo学校培训课程
  • 东莞阳光网上投诉郴州seo快速排名
  • 英国小子做房产网站石家庄seo推广优化
  • 网站建设流程和方法沈阳企业网站seo公司
  • 怎么做网页 网站制作抖音seo搜索引擎优化
  • 国外免费下载wordpress主题seo推广的全称是
  • 泰国公共建设网站广告软文怎么写
  • 网站做实名认证新手seo入门教程
  • 广州企业网站建设费用搜索关键词查询
  • 嘉兴网络公司变更百度seo排名优化公司推荐
  • 网站平台专题如何制作免费推客推广平台
  • 北京网站建设最便宜的公司如何在网上推广自己的产品
  • 香洲区建设局网站文职培训机构前十名
  • 免费网页游戏poki惠州seo招聘
  • 北京专门做网站的企业网络推广的方法有哪些
  • 动态网站项目实训教程任务3怎么做游戏推广员拉人犯法吗