我有大量的变量,这些变量是通过文件加载到字典中的。用户可以通过用户界面编辑这些值,然后可以将其保存回文件。因此,将名称和值也保留在字典中有几个充分的理由。为了简洁起见,我将使用示例3代替我应用程序中存在的数百个示例。在应用程序中,这些变量的使用非常频繁,所以我希望绕过反复引用字典。
如果要设置实际变量,当前必须这样做:
//definitions
var size: double
var width: double
var height: double
let varDict = ["size":5.0, "width":100.0, "height":50.0]
//setting values
size = varDict["size"]
width = varDict["width"]
height = varDict["height"]
为了使编译器正常运行,我理解仍然需要定义每个变量(按照// definitions部分)
Swift(版本4+)中是否有任何方法可以在循环中执行此操作(//设置值部分),而不必将每个操作都指定为单独的显式命令?我知道有些语言(例如Lisp)可以做到这一点。
还是我唯一的选择是手动更新例程,还是编写程序以在变量列表更新时生成Swift源并将其粘贴到源代码中?
答案 0 :(得分:0)
Swift中不存在这种“动态”变量。
由于它是一种静态类型的语言,因此编译器必须迅速准确地知道哪些变量存在,它们具有哪些类型等等,因为它使用起来非常安全,因此是其最重要的功能之一。
但是编译器无法知道循环将创建哪些变量,因为您可以更改变量源文件而无需重新编译应用程序。