当前位置: 首页 > 面试题库 >

快速模块是什么意思?

周枫涟
2023-03-14
问题内容

例如,我有两个名为file1.swift和的文件file2.swift

file1.swift

import UIKit

class A: B {
}

file2.swift

import UIKit

class C: A{     
}

我读到公共类不能在模块外部子类化。在这里,我有C类。我试图了解模块在这里的含义。我为两个文件导入了相同的模块UIKit。那么,这两个文件属于同一模块吗?这样我就可以继承。还是两个文件都具有不同的模块,甚至我导入相同的UIKit?

谁能解释什么是模块?

资源:

具有公共访问权限或更高访问权限级别的类只能在定义它们的模块内被子类化。

具有公共访问权限或任何更高访问权限级别的类成员只能在定义它们的模块内被子类覆盖。


问题答案:

模块是代码分发的单个单元—一个框架或应用程序,是作为单个单元构建和交付的,并且可以由另一个模块使用Swift的import关键字导入。

Xcode中的每个构建目标(例如应用程序捆绑包或框架)在Swift中都被视为一个单独的模块。如果您将应用程序代码的各个方面组合为一个独立的框架(可能是在多个应用程序之间封装和重用该代码),那么当在应用程序中导入和使用该框架时,您在该框架中定义的所有内容都将成为单独模块的一部分,或在其他框架中使用它时。

如文档所示,该模块是应用程序或框架(库)。如果您使用A和创建类的项目B,则它们是同一模块的一部分。
同一项目 中的任何其他类都可以从这些类继承。但是,如果您将该项目导入另一个项目,则该另一个项目中的类将不能成为subclass
AB。为此,您必须open在其声明之前添加指标。

基本上,如果您使用一个应用程序,那么您将使用一个模块,除非声明为privatefileprivate,否则这些类可以彼此子类化。

编辑

让我们在模块(项目) Module1中 具有以下类:

class A {
}

由于此类不是open,因此只能在同一模块内进行子类化。这意味着以下课程:

class B: A {
}

只能Module1 的同一项目中编写。

如果将 Module1 添加为项目 Module2 的依赖项,请尝试执行以下操作:

import Module1

class C: A {
}

它不会编译。这是因为class A不是open(换句话说,它具有访问权限public或更少的访问权限),并且它不与属于同一模块CA属于
Module1C属于 Module2

注意

import关键字将依赖项模块导入当前模块。如果您import UIKit在项目中编写代码,则是告诉编译器您要在模块UIKit中使用模块。import没有定义当前模块。当前模块是当前项目。

import UIKit在文件的开头添加不会更改,也不会定义文件所属的模块。它只是告诉编译器您要在该文件中使用UIKit模块中的代码。



 类似资料:
  • 问题内容: 我看过这样的代码: 我的问题是参数名称前的标记是什么意思?这是否意味着在调用函数时必须指定参数? 此外,没有这个标记,有人能告诉我功能的不同吗?代码示例非常受欢迎。 问题答案: 更新(Swift 3。* …) 第一个参数签名的默认行为发生了巨大变化。要了解参数标签(例如“外部参数”)和参数名称(例如“局部参数”)如何工作,请阅读Apple的Swift书中的“函数参数标签和参数名称”一章

  • 问题内容: 我有一个类似于以下的简单代码,并将其作为节点模块执行: 我知道这是默认上下文(例如在浏览器中),但是关键字指的是什么? 问题答案: (在模块的上下文中)与node.js中的相同。但是,通常应该使用/ 代替,这样可以清楚地清除正在修改的内容。

  • 另一个类比了解Angular 2模块的是类。 在类中,我们可以定义公共或私有方法。 公共方法是我们代码的其他部分可以用来与之交互的API,而私有方法是隐藏的实现细节。 以相同的方式,模块可以导出或隐藏组件,指令,管道和服务。 导出的元素可被其他模块使用,而未导出(隐藏)的元素只是在模块本身内部使用,并且不能被我们的应用程序的其他模块直接访问。 模块的基本使用 为了能够定义模块,我们必须使用装饰器

  • Python 提供了强大的 模块支持,主要体现在,不仅 Python 标准库中包含了大量的模块(称为标准模块),还有大量的第三方模块,开发者自己也可以开发自定义模块。通过这些强大的模块可以极大地提高开发者的开发效率。 那么,模块到底指的是什么呢?模块,英文为 Modules,至于模块到底是什么,可以用一句话总结: 模块就是 Python  程序。换句话说,任何 Python 程序都可以作为模块,包

  • 本文向大家介绍什么是Perl模块?,包括了什么是Perl模块?的使用技巧和注意事项,需要的朋友参考一下 Perl模块是在库文件中定义的可重用软件包,该文件的名称与扩展名为.pm的软件包的名称相同。 一个名为Foo.pm的Perl模块文件可能包含这样的语句。 关于Perl模块的几点要点 需要和 使用的功能 将加载模块。 两者都使用@INC中的搜索路径列表来查找模块。 这两个函数 都需要并 使用调用 

  • 本文向大家介绍什么是桩模块相关面试题,主要包含被问及什么是桩模块时的应答技巧和注意事项,需要的朋友参考一下 比如对函数A做单元测试时,被测的函数单元下还包含函数B,为了更好的定位错误,就要为函数B写桩,来模拟函数B的功能,保证其正确。 总结:单元测试中,测试一个模块时,需要设计驱动模块和桩模块。 运行被测试单元时,为了隔离单元,根据被测试的接口,开发相应的驱动程序和桩程序。 驱动模块:为模拟被测试