当前位置:网站首页>Swiftui swift internal skill: five skills of using opaque type in swift
Swiftui swift internal skill: five skills of using opaque type in swift
2022-07-07 11:45:00 【Knowledge fatness】
If you are Swift Novice , You may not be familiar with the concept of opaque types . In short , An opaque type is a type that cannot be subclassed or initialized from outside its definition module . let me put it another way , This is a way to hide implementation details from other parts of the code .
although opaque Type can be used for many purposes , But they are especially suitable for creating easy-to-use and difficult to misuse API. In this post , We will share in Swift Use in opaque Five skills of type .
1. Use opaque types to hide implementation details
One of the biggest benefits of using opaque types is that they allow you to hide implementation details from other parts of the code . When you want to create something that is easy to use and difficult to misuse API when , This is especially useful .
for example , Suppose you are creating a library that provides custom view controllers . You may want to hide the implementation details of the view controller from the users of the Library . By using opaque types , You can do this .
2. Use opaque types to enforce type safety
Another benefit of using opaque types is that they help you enforce type safety in your code . This is because opaque types cannot be subclassed or initialized from outside their definition module .
for example , Suppose you have a that returns an opaque type API. If you try to subclass or initialize the type from outside the definition module , You will receive compiler errors . This means that you can be sure that only the types you expect are used in your code .
3. Use opaque types to improve performance
In addition to helping hide implementation details and enforce type safety , Opaque types can also improve performance . This is because the compiler can optimize code that uses opaque types more effectively .
for example , Suppose you have a method that takes an opaque type as a parameter . The compiler can inline this method , For better performance .
4. Use opaque types to limit the visibility of types
Another advantage of using opaque types is that they help you limit the visibility of types . This is because opaque types can only be initialized from their definition modules .
When you want to create something for a specific group of people API when , It would be very helpful . for example , Suppose you
边栏推荐
- Talk about SOC startup (11) kernel initialization
- 使用引用
- Onedns helps college industry network security
- Two week selection of tdengine community issues | phase II
- La voie du succès de la R & D des entreprises Internet à l’échelle des milliers de personnes
- 相机标定(2): 单目相机标定总结
- 【最短路】Acwing1128信使:floyd最短路
- Talk about SOC startup (VII) uboot startup process III
- Internet Protocol
- STM32 entry development write DS18B20 temperature sensor driver (read ambient temperature, support cascade)
猜你喜欢
Suggestions on one-stop development of testing life
自动化测试框架
There are so many factors that imprison you
Zhou Yajin, a top safety scholar of Zhejiang University, is a curiosity driven activist
面试被问到了解哪些开发模型?看这一篇就够了
关于测试人生的一站式发展建议
Distributed database master-slave configuration (MySQL)
In SQL, I want to set foreign keys. Why is this problem
In my limited software testing experience, a full-time summary of automation testing experience
浙江大学周亚金:“又破又立”的顶尖安全学者,好奇心驱动的行动派
随机推荐
Common SQL statement collation: MySQL
Vuthink proper installation process
互联网协议
【神经网络】卷积神经网络CNN【含Matlab源码 1932期】
简单介绍一下闭包及它的一些应用场景
‘module‘ object is not callable错误
Qt 实现容器的DELETE的方式
R language Visual facet chart, hypothesis test, multivariable grouping t-test, visual multivariable grouping faceting boxplot, and add significance levels and jitter points
Drive HC based on de2115 development board_ SR04 ultrasonic ranging module [source code attached]
Zhou Yajin, a top safety scholar of Zhejiang University, is a curiosity driven activist
electron添加SQLite数据库
博客搬家到知乎
深度学习秋招面试题集锦(一)
软件设计之——“高内聚低耦合”
在我有限的软件测试经历里,一段专职的自动化测试经验总结
自律,提升自制力原来也有方法
关于测试人生的一站式发展建议
Audit migration
STM32F1与STM32CubeIDE编程实例-MAX7219驱动8位7段数码管(基于SPI)
sink 消费 到 MySQL, 数据库表里面已经设置了 自增主键, flink 里面,如何 操作?