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

电子商务网站建设期末试题及答案做3d效果图有什么好网站

电子商务网站建设期末试题及答案,做3d效果图有什么好网站,网页截图快捷键是哪个,策划书中网站制作怎么写go语言并没有面向对象的相关概念,go语言提到的接口和java、c等语言提到的接口不同,它不会显示的说明实现了接口,没有继承、子类、implements关键词。go语言通过隐性的方式实现了接口功能,相对比较灵活。 interface是go语言的一大…

go语言并没有面向对象的相关概念,go语言提到的接口和java、c++等语言提到的接口不同,它不会显示的说明实现了接口,没有继承、子类、implements关键词。go语言通过隐性的方式实现了接口功能,相对比较灵活。

interface是go语言的一大特性,主要有以下几个特点:

  • interface 是方法或行为声明的集合
  • interface接口方式实现比较隐性,任何类型的对象实现interface所包含的全部方法,则表明该类型实现了该接口。
  • interface还可以作为一中通用的类型,其他类型变量可以给interface声明的变量赋值。
  • interface 可以作为一种数据类型,实现了该接口的任何对象都可以给对应的接口类型变量赋值。

下面是一些代码示例

接口实现

package mainimport "fmt"type Animal interface {GetAge() int32GetType() string
}type Dog struct {Age  int32Type string
}func (a *Dog) GetAge() int32 {return a.Age
}
func (a *Dog) GetType() string {return a.Type
}func main() {animal := &Dog{Age: 20, Type: "DOG"}fmt.Printf("%s max age is: %d", animal.GetType(), animal.GetAge())}

interface作为通用类型

package mainimport ("fmt""reflect"
)type User struct {Id     intName   stringAmount float64
}func main() {var i interface{}i = "string"fmt.Println(i)i = 1fmt.Println(i)i = User{Id: 2}//i.(User).Id = 15  //运行此处会报错,在函数中修改interface表示的结构体的成员变量的值,编译时遇到这个编译错误,cannot assign to i.(User).Idfmt.Println(i.(User).Id)}

注意:

不可用i:=interface{} 这种形式,因为不能确定i的具体类型,会报type interface {} is not an expression 错误。

interface接口查询

接口查询,在一个接口变量中,查询所赋值的对象有没有实现其他接口所有的方法的过程,就是查询接口。即接口A实现了接口B中所有的方法,那么通过查询赋值A可以转化为B。

代码示例

package mainimport "fmt"type Animal interface {GetAge() int32GetType() string
}
type AnimalB interface {GetAge() int32
}type Dog struct {Age  int32Type string
}func (a *Dog) GetAge() int32 {return a.Age
}
func (a *Dog) GetType() string {return a.Type
}func main() {var animal Animal = &Dog{Age: 20, Type: "DOG"}fmt.Printf("%s max age is: %d", animal.GetType(), animal.GetAge())var animalb AnimalB = &Dog{Age: 20, Type: "DOG"}fmt.Printf("max age is: %d", animalb.GetAge())//这里实现了animalb 转化Animal接口val, ok := animalb.(Animal)if !ok {fmt.Println("ok")} else {fmt.Printf("%s max age is: %d", val.GetType(), val.GetAge())}
}

接口转化很简单

val, ok := animalb.(Animal)

注意,animalb 只有AnimalB所包含的方法GetAge()。

如果接口A的方法列表是接口B的方法列表的子集,那么接口B可以赋值给接口A,反之则不行。

接口类型查询

只能对interface{}类型的变量使用类型查询

示例

package mainimport "fmt"type Animal interface {GetAge() int32GetType() string
}
type AnimalB interface {GetAge() int32
}type Dog struct {Age  int32Type string
}func (a *Dog) GetAge() int32 {return a.Age
}
func (a *Dog) GetType() string {return a.Type
}func main() {var i interface{}//i = "ok"//方法一val, ok := i.(Animal)if !ok {fmt.Println("no")} else {fmt.Println(val.GetAge())}// 方法二switch val := i.(type) {case string:fmt.Println(val)case int:fmt.Println(val)default:fmt.Println(val)}// 方法三 通过反射typename := reflect.TypeOf(i)fmt.Println(typename)
}

interface默认nil所以查出是nil,如果给i赋值一个字符型值(去掉i = "ok"前面的注释),则返回

no
ok
string

http://www.yayakq.cn/news/139360/

相关文章:

  • 网站正在建设中 公告接软件开发项目的平台
  • 网站建设j基本步骤软件开发公司流程
  • 青海服装网站建设公司58同城网站建设深圳丽丽亚
  • 百度蜘蛛对视频网站的抓取多个网站如何做301
  • 做影视网站侵权吗建设部网站进不去
  • 学校门户网站功能大连网络公司服务
  • 长沙专业网站建设品牌网页截图快捷键是哪个
  • 湛江建设免费网站广州企业建设网站
  • 做微网站常用软件网站增加聊天
  • 帝国cms 门户网站网业有限公司
  • 联锁酒店网站建设需求分析衡阳网站开发
  • wordpress服装模板扬中网站优化公司
  • 什么网站可以做h52023年企业所得税最新政策
  • 重庆知名网站中宁企业网络推广联系人
  • 网站制作案例 立邦wordpress+仿简书模板
  • 免费网站是百度推广助手app下载
  • 广州最新发布消息seo关键词排名工具
  • 做网站只有域名网站建设贵阳
  • 展厅设计制作网站那些网站可以做h5
  • 濮阳网站建设0393seo公司做网站的费用属什么用途
  • 重庆网上制作网站宜宾网站网站建设
  • 郑州个人做网站汉狮解决方案
  • 梅河口建设局网站网站建设宁夏凤凰云
  • 萍乡网站制作新八建设集团网站
  • 怎样做网站卖东西WordPress哔哩哔哩主题
  • 涵江建设局网站网站效果代码
  • soho的网站怎么做浙江大成建设集团有限公司网站
  • 枣庄网站建设 网站设计 网站制作顺德网站制作案例平台
  • 在线做qq空间的网站网站建设如何工作
  • 智能ai写作免费网站阿里云服务器免费试用