package main

import "fmt"

type Reader interface {
ReadBook()
}
type Writer interface {
WriteBook()
} // 具体类型
type Book struct {}
func (b *Book) ReadBook() {
fmt.Println("Read a Book")
}
func (b *Book) WriteBook() {
fmt.Println("Write a Book")
} func main() {
// b: pair<type:Book, value:book{}地址>
b := &Book{} // r: pair<type:, value:>
var r Reader
// r: pair<type:Book, value:book{}地址>
r = b r.ReadBook() // w: pair<type:, value:>
var w Writer
// w: pair<type:Book, value:book{}地址>
// 此处的断言为什么会成功?因为w r 具体的type是一致的,所以会断言成功
w = r.(Writer) w.WriteBook() }

  

最新文章

  1. js中奇特的for循环写法
  2. mysql复制表结构及检查表、存储过程是否存在
  3. node.js报错总结
  4. ahjesus mongodb指定到数据盘连接不上的解决方案
  5. Google Code Jam 2010 Round 1B Problem B. Picking Up Chicks
  6. droidbox官网
  7. wpa_supplicant是什么?
  8. Android之最简单的ImageView加边框方法
  9. 在linux下实现UBOOT的TFTP下载功能
  10. 异步操作AsycnTask类
  11. Spark源码分析之Spark Shell(上)
  12. less补充函数
  13. shell脚本之流程控制
  14. [Swift]LeetCode405. 数字转换为十六进制数 | Convert a Number to Hexadecimal
  15. 爱奇艺、伤酷、乐视 vip 解析视频网站
  16. 简单JAVA爬虫51Jobs
  17. (原创)odoo关系字段在视图中的行为控制 总结
  18. iOS:使用莱文斯坦距离算法计算两串字符串的相似度
  19. url传输编码
  20. React Native多语言

热门文章

  1. IDEA把Main方法打包成jar包
  2. JAVA通过正则匹配html里面body标签的内容,去掉body标签
  3. Spring Boot整合Thymeleaf及Thymeleaf页面基本语法
  4. 【LeetCode】888. Fair Candy Swap 公平的糖果棒交换(Python)
  5. 【LeetCode】789. Escape The Ghosts 解题报告(Python & C++)
  6. HDU 4355:Party All the Time(三分模板)
  7. Adversarial Self-Supervised Contrastive Learning
  8. maven dependency全局排除
  9. Zookeeper使用超级用户删除带权限的节点
  10. Rainbond 对接 Istio 原理讲解和代码实现分析