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

网站 国外空间不需要icp许可证吗廊坊市固安县建设局网站

网站 国外空间不需要icp许可证吗,廊坊市固安县建设局网站,青岛公司网站,动漫设计和动画设计结构体类型可以包含若干字段#xff0c;每个字段通常都需要有确切的名字和类型。也可以不包含任何字段#xff0c;这样并不是没有意义的#xff0c;因为还可以为这些类型关联上一些方法#xff0c;这里可以把方法看作事函数的特殊版本。函数事独立的程序实体#xff0c;可…结构体类型可以包含若干字段每个字段通常都需要有确切的名字和类型。也可以不包含任何字段这样并不是没有意义的因为还可以为这些类型关联上一些方法这里可以把方法看作事函数的特殊版本。函数事独立的程序实体可以声明有名字的函数也可以声明没名字的函数还可以把它们当作普通的值传来传去(把具有相同签名的函数抽象陈独立的函数类型作为一组输入或输出的代表)。方法则不同它需要名字不能被当作值来看待更重要的是它必须隶属于某一个类型。方法所属的类型会通过期声明中的接收者声明(关键字func和方法名称之间那个圆括号包裹起来的内容其中必须包含确切的名称和类型字面量这个接收者的类型其实就是当前方法所属的那个类型而接收者的名称则用于在当前方法中引用它所属的类型的当前值)体现出来。type AnimalCategory struct{kingdomstring //界。phylum string //门。class string //纲。order string //目。family string //科。genus string //属。species string //种。}func (ac AnimalCategory) String()string{return fmt.Sprintf(%s%s%s%s%s%s%s,ac.kingdom, ac.phylum, ac.class, ac.order,ac.family, ac.genus, ac.species)}从String方法的接收者声明可以看出它隶属于AnimalCategory类型。通过该方法的接收者名称ac可以在其中引用到当前的任何一个字段或者调用到当前值的任何一个方法(包括string方法自己)。使用时可以这样表示category : AnimalCategory{species: cat}fmt.Printf(The animal category: %s\n, category)在Go语言中可以通过为一个类型编写名为String的方法来自定义该类型的字符串表示形式这个String方法不需要任何参数声明但需要一个string类型的结果声明。正因为如此在调用fmt.Print函数时无需显式调用它的string方法fmt.Print会自己去寻找它。方法隶属的类型并不局限于结构图但必须时某个自定义的数据类型并且不能时任何接口类型。一个数据类型关联的所有方法共同组成了该类型的方法集合。同一个方法集合中的方法不能出现重名并且如果它们所属的是一个结构图类型那么它们的名称与该类型中任何字段的名称也不能重复。可以把结构体类型中的一个字段看作是它的一个属性或一项数据再把隶属于它的一个方法看作是附加再其中数据之上的一个能力或一项操作。将属性及其能力封装再一起是面向对象编程的一个主要原则。1、结构体嵌入字段Go语言规范规定如果一个字段的声明中只有字段的类型名而没有字段的名称那么它就是一个嵌入字段。可以通过此类型变量的名称后跟“.”再后跟嵌入字段类型的方法引用到该字段。type Animal struct{scientificNamestring //学名。AnimalCategory //动物基本分类。}func (a Animal) Category()string{returna.AnimalCategory.String()}Category方法的接收者类型是Animal接收者名称是a。在该方法中通过表达式a.AnimalCategory选择到了a这个嵌入字段然后又选择了该字段的String方法并调用了它。把一个结构体类型嵌入到另一个结构体中的嵌入字段的方法集合会被无条件地合并进被嵌入类型地方法集合中。animal :Animal{scientificName:American Shorthair,AnimalCategory: category,}fmt.Printf(The animal: %s\n, animal)这里声明了Animal类型地变量animal并对它进行初始化把字符串值“American Shorthair”赋值给它的字段scientificName并把前面声明过的变量category赋给它的嵌入字段AnimalCategory那再后面使用fmt.Printf函数相当于调用animal的String方法(虽然还没有为Animal类型编写String方法但这样做并没有问题因为嵌入字段AnimalCategory的String方法会被当做animal的方法调用)那如果为Animal类型也编写一个String方法呢会调用哪一个答案是animal的String方法会被调用AnimalCategory的String方法被屏蔽掉了。注意只要名称相同无论这两个方法的签名是否一致被嵌入类型的方法都会屏蔽掉嵌入字段的同名方法。同样如果两个结构体类型中存在同名的字段那嵌入字段中的那个字段一定会被“屏蔽‘。即使是两个同名的成员一个是字段一个是方法这种屏蔽现象依然会存在。不过即使被屏蔽了仍然可以通过链式的选择表达式选择到嵌入字段的字段或方法。当出现多层嵌入时屏蔽现象会以嵌入的层级为依据嵌入层级越深的字段或方法越可能被屏蔽。如果同一层级的多个嵌入字段拥有同名的字段或方法那么被嵌入类型的值那里选择此名称的时候就会引发一个编译错误。2、Go语言用嵌入字段实现了继承吗Go语言中根本没有继承的概念它所做的事通过嵌入字段的方式实现了类型之间的组合。面向对象编程中的继承事通过牺牲一定的代码简洁性来换取可扩展性这种可扩展性事通过侵入的方式实现的。而类型之间的组合采用的是非声明的方式。不需要显式声明而且也非侵入式的。只是通过嵌入字段的方式把一个类型的属性和能力嫁接给另外一个类型3、值方法和指针方法都是什么意思有什么区别方法的接收者必须是某个自定义的数据类型而且不能是接口类型或接口的指针类型。值方法就是接收者是非指针的自定义数据类型的方法。前面的AnimalCategory、Animal声明的那些方法都是值方法。type Cat struct{namestringAnimal}func (cat*Cat) SetName(name string) {cat.namename}方法SetName的接收者类型是*Cat(Cat类型的指针类型)。那指针方法就是接收者类型是指针类型的方法区别1)值方法的接收者是该方法所属的那个类型值的一个副本在该方法内对该副本的修改一般不不会体现在原值上(除非这个类型本身是某个引用类型(如切片或字典)的别名类型)。指针方法的接收者是该方法所属那个基本类型值的指针值的一个副本这样的方法内对该副本指向值的进行修改一定会体现在原值上。(2)一个自定义数据类型的方法集合中仅会包含它的所有值方法而该类型的指针类型的方法集合却包含了所有值方法和所有指针方法
http://www.huolong8.cn/news/278785/

相关文章:

  • 做网站维护承包合同怎样不花钱做网站
  • 服装设计网站怎么做沧州地区阿里巴巴做网站
  • 泉州网站建设哪里好棋牌网站开发
  • 名气特别高的手表网站目前比较火的电商平台有哪些
  • 网站模板平台资源那些网站做的非常好看
  • wordpress建站方法国家住房和城乡建设部中国建造师网站
  • 做外卖那些网站好影视公司招聘信息
  • 中国建设银行网站结构怎么做淘宝客网站和APP
  • 企业网站建设合同方案呈贡网站建设
  • 网站设计师专业seo新手快速入门
  • 用python做音乐网站自助建站好吗
  • 代写网站建设合同怎么开发一款小程序
  • 合肥网站优化seo招标网站哪个好
  • 微网站建设报价表wordpress服务器内部错误
  • google网站设计原则用jsp做一网站的流程图
  • 网站安全建设必要性装饰公司起名字大全
  • 网站注册怎么做禹城网站建设价格
  • 做网站界面设计注意什么电子商务网站的构建
  • 网站设计模板是什么网站建设番禺
  • asp公司网站源码分销系统开发demo
  • 网站充值支付宝收款怎么做优秀的手机网站
  • 做网站运营的女生多吗seo执行招聘
  • 招聘网站开发设计滨州网站网站建设
  • 专业微网站制作卢氏住房和城乡建设厅网站
  • hs网站推广html5 微网站开发
  • 做婚礼网站的公司网站公共模板是什么
  • 阿里云有了域名 网站建设地接做的网站
  • 建网站开发费用建筑产业大数据综合服务平台
  • 上海网站建设 觉策动力wordpress 增加侧边栏
  • 网站建设进度时间表南京seo网络优化公司