Back to Basics: Design Patterns0 码力 | 96 页 | 2.10 MB | 1 年前3
2.1.6 谈谈 Go 泛型CN 谈谈 Go 泛型 鸟窝(晁岳攀) 微服务框架 rpcx 作者 个人介绍 微服务框架rpcx作者,百度资深工程师 《100个Go语言错误及避坑指南》,译者之一。即将出版 《深入理解Go并发编程》,作者。封面占位用。即将出版 ’ alt=‘OCR图片’/> 回顾 Go 泛型 01 Go 泛型陷阱 02 最佳实践 03 改造 Go 项目 04 Top N Go 泛型库 05 第一部分 第一部分 回顾 Go 泛型 ’ alt=‘OCR图片’/> 泛型类型和泛型函数 泛型类型 类型参数 类型约束 type List[T any] struct { next *List[T] value T } 泛型函数 类型参数 类型约束 func min[T ~int|~float64] (x, y T) T { if x < y { return return x } return y } 泛型类型的方法 func (l *List[T]) Len() int { … } 泛型方法? func (l *List) Len[V any] () int { … } ’ alt=‘OCR图片’/> 类型约束和接口0 码力 | 52 页 | 3.09 MB | 1 月前3
1.2.3 Go 泛型设计G CN Go泛型设计 赵柯 QQ音乐 Go泛型发展史 01 Go泛型设计实现提案 02 Go泛型底层实现原理 03 总结 04 第一部分 Go泛型发展史 ’ alt=‘OCR图片’/> 什么是泛型? 1967年,克里斯托弗·斯特雷奇在《Fundamental Concepts in Programming Languages》提出了两个概念: 特设多态(ad-hoc): void print(string type unknown struct {} func (u unknown) walk() {} func (u unknown) quack() {} ’ alt=‘OCR图片’/> 泛型困局 编码速度 or 编译速度 or 运行速度? C++(slow compiler) ’ alt=‘OCR图片’/> 早期提案 - Type Functions type Lesser(t) interface return a } return b } MyVector(t)(v)看上去像是两次函数调用 type关键字使用混乱 部分场景实现困难: 支持通用运算符 支持泛型方法 ’ alt=‘OCR图片’/> 早期提案-Generalized Types(广义类型) gen [t] type Lesser(t) interface { Less(t) bool0 码力 | 35 页 | 1.31 MB | 1 月前3
以外部模式部署OpenShift Container Storage/7/b/7b7bf95ae20a9c3c3e8c87b74205eac1/p1_1.jpg) # Red Hat OpenShift Container Storage 4.6 ## 以外部模式部署 OpenShift Container Storage 如何安装和配置您的环境 Powered by TCPDF (www.tcpdf.org) 如何安装和配置您的环境 Enter your 集群的说明,请参阅本文档。 ## 目录 第1章 以外部模式部署概述 ..... 3 第2章 为基于 RED HAT ENTERPRISE LIUNX 的节点上的容器启用文件系统访问 ..... 4 第3章 安装 RED HAT OPENSHIFT CONTAINER STORAGE OPERATOR ..... 5 第4章 为外部模式创建 OPENSHIFT CONTAINER STORAGE STORAGE 集群服务 ..... 8 第5章 为外部模式验证 OPENSHIFT CONTAINER STORAGE 安装 ..... 13 5.1. 验证 POD 的状态 ..... 13 5.2. 验证 OPENSHIFT CONTAINER STORAGE 集群是否正常运行 ..... 14 5.3. 验证 MULTICLOUD 对象网关是否健康 ..... 14 5.4. 验证存储类是否已创建并列出0 码力 | 29 页 | 738.90 KB | 2 年前3
Go 1.18 中的泛型### Go 1.18 中的泛型 欧长坤 changkun.de/s/generics118 2022/03/30 ## 语法和使用 ## 什么时候需要泛型? 当使用接口作为函数的形参类型时,函数调用方传递的实际参数可以是完全不同的类型: type T interface { Add(T) T } func Sum(elem s ...T) (sum T) { // T 可以是任何实现 Add() (sum S) { // S 的底层类型必须底层类型为 int 约束的类型 for i := range elements { sum += elem[i] } return } 使用泛型的根本目的是:类型安全的参数传递,以及对实现的类型进行抽象  {} // OK 为什么第二个 bar 不会报错? ## 抽象能力 泛型没有任何运行时的机制,所以关于泛型的组件只发生在编译时期 对于下面的接口而言,无法作为普通参数使用: func Foo[T any]( ) {} x := Foo // ERROR: cannot use0 码力 | 45 页 | 501.50 KB | 2 年前3
JAVA 应用与开发 - 泛型应用与开发 泛 型 让我们愉快的 Coding 起来吧... 王晓东 中国海洋大学信息学院计算机系 October 5, 2018  ## 学习目标 ■ 理解泛型的概念,掌握其基本应用 ▶ 集合框架中的泛型 ▶ 泛型的向后兼容性 ■ 掌握自定义泛型类和泛型方法 ▶ 理解类型参数 ▶ 理解差异性并能够定义自己的泛型类和泛型方法 ▶ 受限制的类型参数 ■ 学会处理泛型类型,包括使用通配符实现泛型容器遍历和操作 ## 大纲 1 泛型概念 2 泛型类与泛型方法 3 处理泛型类型 ## 泛型概念 ## 什么是泛型 ## 泛型(Generics) 泛型机制自 JDK 5.0 开始引入,其实质是将原本确定不变的数据类型参数化。 作为对原有 Java 类型体系的扩充,使用泛型可以提高 Java 应用程序的类型安全、可维护性和可靠性。 ## 什么是泛型 ## ☑ 集合框架中的数据造型问题 传统的集合容器为了提供广泛的适用性,会将所有加入其中的元素当作 Object 类型来处理。基于此原因,在实际使用时,我们必须将从集合中取出的元素值再强制转换(造型)为所期望的类型。 ## 什么是泛型 ## 集合框架中的数据造型问题 传统0 码力 | 35 页 | 587.40 KB | 2 年前3
TiDB 开源分布式关系型数据库# TiDB 开源分布式关系型数据库 TiDB PRODUCT PORTFOLIO & VERTICAL CASE STUDY   ## 学习目标 1. 理解多态和虚方法调用的概念,掌握其用法 2. 掌握方法重载的方法 3. 掌握 static 属性、方法和初始化块的用法 4. 了解设计模式,掌握单例设计模式 5. 掌握 final 关键字的概念和使用方法 |大纲|多态性|方法重载|关键字 static|关键字 final| |---|---|---|---|---| |大纲||||| |多态性||||| } } ## Singleton 设计模式 $ ^{2} $ ## ☑ 所谓 “模式” 就是被验证为有效的常规问题的典型解决方案。 ▶ 设计模式(Design Pattern)在面向对象分析设计和软件开发中占有重要地位。 好的设计模式可以使我们更加方便的重用已有的成功设计和体系结构,极大的提高代码的重用性和可维护性。 ## 经典设计模式分类 创建型模式 涉及对象的实例化,特点是不让用户代码 创建对象。 工厂方法模式、抽象工厂方法模式、生成器模式、原型模式和单例模式 行为型模式 涉及怎样合理的设计对象之间的交互通信,以及合理为对象分配职责,让设计富有弹性、易维护、易复用。 责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式 结构型模式 涉及如何组合类和对象以形成更大的结构,和类有关的结构型模式涉及如何合理使用0 码力 | 49 页 | 659.74 KB | 2 年前3
菟葵 - 在 Krita 中复现 SAI 的图层混合模式 - 2020-11-24A中复现 sai 的图层混合模式 希望这篇可以帮助从 sai 转到 krita 的用户,以及其他想要使用 sai 图层混合模式的 krita 用户。 (下面出现的 sai 图层混合模式基于 sai2 2020-05-10 中文版,之后版本会不会新增图层混合模式就不知道了) 发光 推测 在 sai2 2020-05-10 版中如果有个图层使用了 “发光” 图层混合模式在保存为 PSD,然后用 PS PS 打开,就可以看见那个 sai 中使用 “发光” 的图层变成了 “线性减淡(添加)”。 混合模式 发光 不透明度 sai 100% 锁定 ☐ 创建剪贴蒙版 ☐ 指定为选区样本 Q 类型  甚至图层名后面还有个 甚至图层名后面还有个奇怪的图标,那个图标是去掉混合选项中“透明形状图层”的勾选后才会出现的。 图层样式 样式 混合选项 混合选项 常规混合 斜面和浮雕 混合模式: 线性减淡(添加) 不透明度(0): 100  等高线 












