gpt4 book ai didi

c - Swift 常量比 C 中的常量更强大

转载 作者:行者123 更新时间:2023-11-30 20:19:51 24 4
gpt4 key购买 nike

我在 Apple 的 Swift 4 编程语言书中读到了以下声明。“Swift 还广泛使用了值无法更改的变量。这些被称为常量,比 C 中的常量强大得多

摘自:Apple Inc.“Swift 编程语言 (Swift 4)”。 iBooks。 https://itunes.apple.com/in/book/the-swift-programming-language-swift-4-0-3/id881256329?mt=11

有人能解释一下它为什么比 C 常量更强大吗? Swift 常量有什么特别之处?问题可能是微不足道的。但我无法在任何地方找到令人信服的答案。请帮忙。

最佳答案

嗯,这里是 Swift 常量(let 属性)相对于 C 中的一些优点:

  • 类型推断
  • 实际上保证了常量性,在 C 中你可以抛弃常量性

    const SomeType constVar = someValue();
    mutatingFunction((SomeType) constVar); // Uh oh

    Swift 禁止像这样规避 const 正确性。

  • 更细致的范围概念; let 属性可以存在:
    • 在文件级别(C 中唯一允许使用 const 的地方)
    • 在扩展内(仅限静态属性),能够授予它们私有(private)访问权限。 (定义了新的访问保护边界,C的访问保护仅限于文件边界)
    • 在类型级别,作为实例、静态属性。 (C 结构不能定义 static const)
  • Swift 确保明确的初始化。所有 let 属性都保证在 init 中分配。没有一个会因未定义的值而悬而未决。
  • let 属性可以声明为元组析构的目标,即使是异构类型也是如此。

    let (name, age) = ("Bob", "20") // Declares and assigns 2 different variables, at once

    C 确实支持使用, 运算符在一个语句中进行多个赋值,但它们必须是同一类型。例如。 int x = 1, y = 2;

关于c - Swift 常量比 C 中的常量更强大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48313641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com