You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中同名私有与公有结构体如何分别访问?

如何在嵌套私有结构体的类中访问全局同名结构体的属性?

因为你的ABC类内部定义了私有结构体A,在something()方法里直接写A会优先匹配这个本地私有类型,所以要访问全局的A,需要明确指定它的模块命名空间。

解决方案

在Swift中,通过「模块名 + 类型名」的方式就能精准定位到全局的A结构体:

class ABC {
    private struct A {
       static let local = "local name"
    }

    func something() {
        // 把YourModuleName替换成你的项目/模块实际名称
        let globalName = YourModuleName.A.name
        print(globalName) // 输出 "Name"
    }
}

补充说明

  • 模块名默认就是你的项目Target名称(可在Xcode项目设置里查看)
  • 如果代码属于默认主模块,直接用项目名称就能访问全局定义的A结构体,这样编译器就不会和类内部的私有A混淆。

内容的提问来源于stack exchange,提问作者Saranjith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:20:29