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

在设计赚钱的网站有哪些wordpress auto自动采集

在设计赚钱的网站有哪些,wordpress auto自动采集,江苏省建设协会网站,商城网站开发技术有哪些文章目录 Go 语言接口例子空接口空接口的定义空接口的应用空接口作为函数的参数空接口作为map的值 类型断言接口值 类型断言例子001类型断言例子002类型断言例子003巩固练习 Go 语言接口 接口#xff08;interface#xff09;定义了一个对象的行为规范#xff0c;只定义规范… 文章目录 Go 语言接口例子空接口空接口的定义空接口的应用空接口作为函数的参数空接口作为map的值 类型断言接口值 类型断言例子001类型断言例子002类型断言例子003巩固练习 Go 语言接口 接口interface定义了一个对象的行为规范只定义规范不实现由具体的对象来实现规范的细节。 interface是一组method的集合是duck-type programming的一种体现。接口做的事情就像是定义一个协议规则只要一台机器有洗衣服和甩干的功能我就称它为洗衣机。不关心属性数据只关心行为方法。 为了保护你的Go语言职业生涯请牢记接口interface是一种类型。 interface类型可以定义一组方法但是不需要实现。并且接口(interface)不能包含任何变量。 实例 /* 定义接口 */ type interface_name interface {method_name1 [return_type]method_name2 [return_type]method_name3 [return_type]...method_namen [return_type] }/* 定义结构体 */ type struct_name struct {/* variables */ }/* 实现接口方法 */ func (struct_name_variable struct_name) method_name1() [return_type] {/* 方法实现 */ } ... func (struct_name_variable struct_name) method_namen() [return_type] {/* 方法实现*/ }例子 Go 中的接口是满足隐式实现的这一点是非常坑人的建议阅读 Go语言令人厌恶的设计。 Go 不提供用于实现接口的关键字。 package mainimport (fmtmath )func main() {var s Shape Square{3}printInformation(s)c : Circle{6}printInformation(c) }//打印面积和周长 func printInformation(s Shape) {fmt.Printf(%T\n, s)fmt.Println(Area: , s.Area())fmt.Println(Perimeter:, s.Perimeter())fmt.Println() }//---Shape 形状--- type Shape interface {//周长Perimeter() float64//面积Area() float64 }//---Square 正方形--- type Square struct {size float64 }func (s Square) Area() float64 {return s.size * s.size }func (s Square) Perimeter() float64 {return s.size * 4 }//---Circle 圆形--- type Circle struct {radius float64 }func (c Circle) Area() float64 {return math.Pi * c.radius * c.radius }func (c Circle) Perimeter() float64 {return 2 * math.Pi * c.radius }输出 main.Square Area: 9 Perimeter: 12main.Circle Area: 113.0973 Perimeter: 37.6991空接口 空接口的定义 空接口是指没有定义任何方法的接口。因此任何类型都实现了空接口。 空接口类型的变量可以存储任意类型的变量。 func main() {// 定义一个空接口xvar x interface{}s : pprof.cnx sfmt.Printf(type:%T value:%v\n, x, x)i : 100x ifmt.Printf(type:%T value:%v\n, x, x)b : truex bfmt.Printf(type:%T value:%v\n, x, x) }空接口的应用 空接口作为函数的参数 使用空接口实现可以接收任意类型的函数参数。 // 空接口作为函数参数 func show(a interface{}) {fmt.Printf(type:%T value:%v\n, a, a) } 空接口作为map的值 使用空接口实现可以保存任意值的字典。 // 空接口作为map值var studentInfo make(map[string]interface{})studentInfo[name] 李白studentInfo[age] 18studentInfo[married] falsefmt.Println(studentInfo) 类型断言 空接口可以存储任意类型的值那我们如何获取其存储的具体数据呢 接口值 一个接口的值简称接口值是由一个具体类型和具体类型的值两部分组成的。这两部分分别称为接口的动态类型和动态值。 我们来看一个具体的例子 var w io.Writer w os.Stdout w new(bytes.Buffer) w nil 请看下图分解 想要判断空接口中的值这个时候就可以使用类型断言其语法格式 x.(T) 其中 x表示类型为interface{}的变量T表示断言x可能是的类型。该语法返回两个参数第一个参数是x转化为T类型后的变量第二个值是一个布尔值若为true则表示断言成功为false则表示断言失败。 举个例子 func main() {var x interface{}x pprof.cnv, ok : x.(string)if ok {fmt.Println(v)} else {fmt.Println(类型断言失败)} } 上面的示例中如果要断言多次就需要写多个if判断这个时候我们可以使用switch语句来实现 func justifyType(x interface{}) {switch v : x.(type) {case string:fmt.Printf(x is a stringvalue is %v\n, v)case int:fmt.Printf(x is a int is %v\n, v)case bool:fmt.Printf(x is a bool is %v\n, v)default:fmt.Println(unsupport type)} } 因为空接口可以存储任意类型值的特点所以空接口在Go语言中的使用十分广泛。 关于接口需要注意的是只有当有两个或两个以上的具体类型必须以相同的方式进行处理时才需要定义接口。不要为了接口而写接口那样只会增加不必要的抽象导致不必要的运行时损耗。 类型断言例子001 类型断言也可以判断指针类型 package mainimport fmtfunc main() {var n1 int32 30var n2 string tomcatn3 : falsestu1 : Student{}stu2 : Student{}justifyType(n1,n2,n3,stu1,stu2) }type Student struct {}func justifyType(items ...interface{}) {for index, x : range items {switch v : x.(type) {case string:fmt.Printf(第%v个参数是 string 类型,值是 %v\n,index,v)case int:fmt.Printf(第%v个参数是 int 类型,值是 %v\n,index,v)case bool:fmt.Printf(第%v个参数是 bool 类型,值是 %v\n,index,v)case Student:fmt.Printf(第%v个参数是 Student 类型,值是 %v\n,index,v)case *Student:fmt.Printf(第%v个参数是 *Student 类型,值是 %v\n,index,v)default:fmt.Println(unsupport type!)}} } 类型断言例子002 package mainimport fmtfunc main() {var i interface{} Hello, Worldstr, ok : i.(string)if ok {fmt.Printf(%s is a string\n, str)} else {fmt.Println(conversion failed)} }类型断言例子003 给Phone结构体一个特有的方法Call()当Usb接口接收的是Phone变量时还需要调用call方法 package mainimport fmtfunc main() {//定义一个usb接口数组可以存放Phone和Camera的结构体变量// 这里就体现出多态数组var usbArr [3]UsbusbArr[0] Phone{vivo}usbArr[1] Phone{小米}usbArr[2] Camera{惠普}//遍历usbArrvar computer Computerfor _, v : range usbArr {computer.Working(v)} }type Usb interface {Start()Stop() }type Camera struct {name string }type Phone struct {name string }type Computer struct {name string }func (c Camera) Start() {fmt.Println(相机开始工作...) }func (c Camera) Stop() {fmt.Println(相机停止工作...) }func (p Phone) Start() {fmt.Printf(%s 手机开始工作...\n, p.name ) }func (p Phone) Stop() {fmt.Printf(%s 手机停止工作...\n, p.name ) }func (p Phone) Call() {fmt.Println(手机 打电话) }func (computer Computer) Working(usb Usb) {usb.Start()if phone, ok : usb.(Phone); ok {phone.Call()}usb.Stop() }巩固练习 在Go语言中接口是什么请解释其含义。如何定义一个接口解释接口定义的基本语法。Go语言中的接口实现是如何工作的请详细解释。什么是空接口它有什么用途能否给出一些使用接口的例子这些例子中接口的作用是什么Go语言不同接口、声明了同名方法怎么解决问题
http://www.yutouwan.com/news/482833/

相关文章:

  • 中国建设银行手机银行官方网站同创企业网站建设
  • 阿里云网站建设官方自营店工业设计网站知乎
  • 免费网站制作开发wordpress让小工具支持简码
  • 下拉框代码自做生成网站拼多多刷单网站开发
  • 网站建设解决方案有哪些wordpress微名片模板
  • 网站交互功能营销式网站制作
  • 做房地产公司网站的费用网页图片不显示
  • 炎陵网站建设网站标题和关键词一样
  • 网站前后台门户系统设计
  • 网站搭建工具建设网站需要准备哪些内容
  • 网站建设系统开发感想与收获百度移动端优化
  • 深圳龙岗是市区还是郊区北京seo排名厂家
  • 网站建设PHP开发是什么意思移动端显卡
  • 网站可兼容移动端商洛建设网站
  • 解决wordpress需要ftp南通网站seo服务
  • 做网站的总是有活动怎么回事wordpress模板下载云落
  • 网站建设现况分析电商网站推广怎么做
  • 三水做网站网站被抄袭怎么投诉
  • 营销型 网站 品牌广告公司取名大全集
  • 肇庆做网站哪家好搜索网站的浏览器
  • wordpress简约下载站模板微信网站制作平台
  • 网站建设的市场定位的方案如何做网站文件
  • 整改网站建设情况龙岗专业做网站
  • 佛山建设网站公司哪家好广州商城网站建设报价
  • h5页面制作代码wp建站优化
  • 修改wordpress字体大小北京做网站优化的公司
  • 龙岗网站制作市场北京搜索关键词优化
  • 免费下载网站软件平台推广怎么写
  • 网站用户注册怎么做做个网站费用
  • app网站如何做推广方案莱阳做网站