go基础_接口断言
// interface
package main import (
"fmt"
) //定义一个接口,接口名字Inter,接口的方法集有2个方法
type Inter interface {
//声明方法
Ping()
Pang()
} //方法的定义
//Ping方法的接收者(适用对象)是St类型
func (St) Ping() {
fmt.Println("ping")
} //Pang方法的接收者(适用对象)是*St类型
func (*St) Pang() {
fmt.Println("pang")
} //定义一个接口,接口名字Anter,接口嵌套了Inter接口,另外还包括一个方法String
type Anter interface {
Inter
String()
} type Str string // 定义String方法,接收者是string
func (Str) String() {
fmt.Println("String method")
} //定义一个struct,名字是St,里面只有1个元素string
type St struct {
Name string
} func main() {
fmt.Println("Hello World!") //st是St类型,并做了初始化
st := &St{"andes"} // 变量i是接口类型,并做了初始化,初始化为st
var i interface{} = st /*接口断言,Inter是接口类型名, i绑定的实例类型st满足接口类型Inter,
那么o的类型就是Inter,o就是i的副本*/
o := i.(Inter)
o.Ping()
o.Pang() /*接口断言,*St是具体类型名,i绑定的实例类型st就是*St类型,
所以赋值结果s的类型就是*St,s结果是st的副本*/
s := i.(*St)
fmt.Println(s.Name) // /*接口断言, Anter是接口类型,i绑定的实例类型st不满足接口类型Anter,
// 此时会出异常*/
// p := i.(Anter)
// p.Ping()
// p.Pang() }
go基础_接口断言的更多相关文章
- java_基础_接口和抽象类
1.接口 java中接口的存在意义是:让多个继承该接口的类实现多态,让多个类有相同的特征 示例代码: interface MyInterface{ void myMethod(); } class T ...
- 29.Java基础_接口
接口的成员特点
- 30.Java基础_接口_抽象类_具体类实现案例
public interface SpeakEnglish { public abstract void speak(); } public abstract class Person { priva ...
- GO学习-(14) Go语言基础之接口
Go语言基础之接口 接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节. 接口 接口类型 在Go语言中接口(interface)是一种类型,一种抽象的类 ...
- Go语言基础之接口
Go语言基础之接口 接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节. 接口 接口介绍 在Go语言中接口(interface)是一种类型,一种抽象的类 ...
- python基础_格式化输出(%用法和format用法)(转载)
python基础_格式化输出(%用法和format用法) 目录 %用法 format用法 %用法 1.整数的输出 %o -- oct 八进制%d -- dec 十进制%x -- hex 十六进制 &g ...
- Go part 6 接口,接口排序,接口嵌套组合,接口与类型转换,接口断言
接口 接口是一种协议,比如一个汽车的协议,就应该有 “行驶”,“按喇叭”,“开远光” 等功能(方法),这就是实现汽车的协议规范,完成了汽车的协议规范,就实现了汽车的接口,然后使用接口 接口的定义:本身 ...
- go 的方法集和接口断言
Go 的方法集与接口断言 方法集 引子 首先来看一段代码: package main import "fmt" func main() { var v IpmHelloByValu ...
- 速战速决 (4) - PHP: 类基础, 抽象类, 接口, trait
[源码下载] 速战速决 (4) - PHP: 类基础, 抽象类, 接口, trait 作者:webabcd 介绍速战速决 之 PHP 类基础 抽象类 接口 trait 示例1.类的相关知识点 1(基础 ...
随机推荐
- C++中局部变量的返回
在写 “根据中序和后序遍历顺序,构建树的问题” 时,原本这只是一个非常简单的问题,但是突然发现一直有错误.代码如下: node* get_root(int x1, int x2, int y1, in ...
- php Allowed memory size of 134217728 bytes exhausted
报错:PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 72 bytes) in ...
- 还不错的Table样式和form表单样式
作为一个后台开发人员而言,拥有一套属于自己的前台样式是比较重要的,这里分享一下自己感觉还不错的样式,以后遇到好的,还会陆续添加 上图: 带鼠标滑动效果的table样式看起来比较清爽 样式 <he ...
- 记录 shell学习过程(9)正则表达式 转自树明聊运维
正则表达式 正则表达式介绍 特殊字符 POSIX特殊字符 一.正则表达式介绍 正则表达式是一种文本模式匹配,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符") ...
- centos7下使用selenium实现文件上传
1.pip install SendKeys 2. 利用js去掉元素的隐藏属性,然后输入: 一般控制元素显示或隐藏是用display属性来实现的 style.display = “none”,表示元素 ...
- youtube-dl parameters
how to select the format of vidoes from youtube-dl? https://www.jianshu.com/p/611009843919 https://u ...
- .Net中C# DateTime类的ToString()方法的使用
Console.WriteLine("ToShortDateString:" + DateTime.Now.ToShortDateString()); Console.WriteL ...
- P4562 [JXOJ2018]游戏
题目描述 她长大以后创业了,开了一个公司. 但是管理公司是一个很累人的活,员工们经常背着可怜偷懒,可怜需要时不时对办公室进行检查. 可怜公司有 n 个办公室,办公室编号是 l 到 l+n−1 ,可怜会 ...
- JS 获取当天所在月的第一天的日期,最后一天日期,所在周的每天的日期,时间,所在每月日期,时间的计算
/** * 获取当天所在月的最后一天日期,和下一个月的第一天日期 * 调用getMonthDay(d), d默认值为01,d为要设置成的day: */ const getMonthMaxDay = ( ...
- MySQL数据库 | 数据库和数据表的基本操作
第一篇博文,一个小小的纪念仪式^-^ 以下正文 一.数据库的基本操作 --数据库的操作 --连接数据库 mysql -uroot -p密码 mysql -uroot -pmysql --退出数据库 e ...