【问题标题】:A comparison of constants and variables in Java and SwiftJava和Swift中常量和变量的比较
【发布时间】:2015-06-24 08:48:53
【问题描述】:

在 Android/Java 中,当我创建常量和变量时,我通常会执行以下操作:

public/private static final int MY_CONSTANT = 73;
int myVariable = 37; 

在 Swift 中我会这样做

let myConstant: Int = 73
var myVariable: Int = 37

或者只是

let myConstant = 73
var myVariable = 37

Swift 版本是否等同于 Java 版本?

我目前没有具体的编码问题,但我正在尝试更深入地了解这两种语言的内部工作原理。当我阅读Swift properties 时,我想到了这个问题。有时进行比较或有一个参考框架可以帮助我做到这一点。

我不确定这个问题是否适合 SO。我会尝试询问,如果它得到太多反对票,我会删除它。

【问题讨论】:

  • 这取决于您所说的“幕后”是什么意思。 Swift 中的程序是用二进制代码编译和执行的,而 Java 代码是在 VM 中执行的,所以你不能说对于任何进程,它们在底层是平等的。
  • 好点,@DmitryGinzburg。我想我指的是它们在面向对象编程方面的逻辑或含义。例如,Java 中的常量声明为 staticfinal,但它的 Swift 对应项没有写入这些内容。啊,ReyCharles 刚刚添加了一个答案。这就是我的意思。

标签: java swift variables constants


【解决方案1】:

在 Swift 中使用 let 就像在 Java 中指定 final,而在 Swift 中使用 var 就像在 Java 中省略 final

Swift 也有 Type Properties 是全局的类型。类型属性的关键字是static,所以和java中的完全一样。如果你想要一个,用 Java 术语来说,static final 字段那么你写static let,如果你只想要一个staticfinal 字段你写static var

【讨论】:

  • 这并不完全正确。 let in swift 比 java 中的 final 更严格。例如,最终的 java Set 可以添加,但不能重新分配。一个 let swift Set 不能被添加或重新分配——它是完全不可变的。
猜你喜欢
  • 2010-09-08
  • 2011-08-25
  • 1970-01-01
  • 2021-02-19
  • 2014-10-09
  • 1970-01-01
  • 2018-12-18
  • 2016-06-30
  • 1970-01-01
相关资源
最近更新 更多