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

Swift是动态语言还是静态语言?

东方辉
2023-03-14
问题内容

我只是想知道Swift是像php一样的动态还是静态的,我的意思是我可以在应用程序运行时生成类吗?


问题答案:

它是静态的-非常静态。编译器必须有关于所有类和功能的全部信息 在编译时
。您可以(使用extension)“扩展”现有的类,但是即使那样,您也必须在编译时完全定义该扩展所包含的内容。

Objective-C是动态的,并且在现实生活中,由于您可能会在Cocoa的存在下使用Swift,因此可以使用Objective-
C运行时在暴露给Objective-C的Swift类中注入/转换方法。即使您使用的是Swift语言,也可以执行此操作。但是Swift 本身
是静态的,并且实际上是经过明确设计的,目的是最大程度地减少或消除使用Objective-C型动力。



 类似资料:
  • 本文向大家介绍动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍,包括了动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍的使用技巧和注意事项,需要的朋友参考一下 关于如题这几个概念,大部分人应该比较熟悉,但是我昏了好久,所以写下来加深印象。 1. 动态语言 又叫动态编程语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如

  • 在动态类型语言去掉类型二字,就成了动态语言,比方说不少地方都说python是动态语言,其实只是它的动态性比较多一些而已,很多所谓的静态语言也有动态性,只是没有那么明显,因此动态语言是一个很含糊的词,一般而言就是随主流的认识,比如python,ruby是动态语言,C,java是静态语言等 动态性不适合修饰语言,适合修饰一些语法特性,简单的说,静态就是编译期可以决定的一些事情,而动态就是运行期才能决定

  • 我正在尝试使用柯特林 V1.2.70、Gradle V4.10.1 和 Java 11。使用 gradle 编译项目时,出现错误,指出“未知的 JVM 目标版本:11。支持的版本:1.6,1.8“。 Kotlin 编译器是否支持 Java 11(生成与 Java 11 JVM 兼容的代码)?如果是这样,如何使用渐变配置?

  • 从这篇文章中我知道Java是按值传递的。我来自Java背景,我想知道Kotlin是用什么在它们之间传递值的。比如扩展或方法等。

  • 我试图用OkHttp和Cucumber在静态编程语言中设置一个Spring启动项目,并且在运行Cucumber任务时遇到以下错误。如何修复? 还有build gradle kts片段 我看到了这个错误https://github.com/square/okio/issues/647看起来可能是它,并修复了这个build.gradle,我如何将其翻译为kotlinbuild.gradle.kts?

  • 我在我的一个项目中使用RxJava,我使用Android Studio插件将我的一个类转换为静态编程语言,并在maplambda(java中的Func1)之一中,中间体返回如下所示。 我不知道这意味着什么。