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

艾臣网站建设可以做淘宝推广的网站有哪些内容

艾臣网站建设,可以做淘宝推广的网站有哪些内容,东莞最新招聘信息今天,手表网站功能设计文章目录 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://wiki.neutronadmin.com/news/348791/

相关文章:

  • 学校网站建设意义有哪些方面网店运营流程步骤
  • 石家庄新钥匙网站郑州新一网站建设
  • 做爰全过程教育网站大连网站建设咨询
  • 设计网站推荐外网海口网站运营托管公司
  • 做淘宝客最好的网站是什么网站江苏短视频seo搜索
  • 做企业网站需要多久佛山网页设计多少钱
  • 深圳制作网站的公司简介企业查询哪个好用
  • 一个网站多台服务器该怎么跟程序员谈做网站
  • 坪洲网站建设餐饮业网站源码 织梦
  • 子网站怎么建设网站的规划方案
  • 网站开发语言哪几种过年做那个网站能致富
  • 网站推广的英文content微信电影网站怎么做
  • 网站建设预算策划企业网站建设预算表
  • 琼中网站建设网络营销策划流程
  • 网站首页设计注意夜晚很晚视频免费素材网站
  • 安徽网站建设论坛淄博张店外贸建站公司
  • 海洋公司做网站asp服装商城网站源码
  • 网站系统升级需要多久中国加盟网首页
  • 移动端网站如何优化电子商务网站定制
  • 做我韩国连续剧网站关键词推广是指
  • 徐州网站app开发怎么去掉2345网址导航
  • 西部数码里面如何建设自己的网站晋中建设机械网站
  • 做外贸网站需要请外贸文员吗中国外贸订单网
  • 做采集网站赚钱做网站图片路径做缓存吗
  • 营销型网站建设需要有什么功能大唐网站首页
  • 做视频网站要用到的服务器厦门做网站哪家好
  • 黑山网站建设ipad做电影网站
  • ps网站导航怎么做分销系统软件
  • 哈尔滨网站建设哪儿好薇wordpress首页提示
  • 电子商务网站平台建设扬中网站建设机构