swift - 声明一个类内部的结构
问题描述
我有一个带有子类的类,在子类中有一个结构。我想按名称调用这个结构。我想用这些声明一个变量并给出name
number1
它number2
自己的数据。
class Main {
var name:String
init(name:String){
self.name = name
}
}
class SubMain: Main {
override init(name:String){
super.init(name: name)
}
struct Test {
var number1:Int
var number2:Int
}
}
我尝试过声明 subMain,并在声明我调用了Test
struct 但它不起作用之后。寻找解决方案:
var main2 = SubMain(name: "hello")
main2.Test(number1:15,number2:20)
解决方案
您的用例有点奇怪,在另一种类型中声明内部类型的主要原因是您想在外部类型中使用内部类型。
一个例子
class SubMain: Main {
var test: Test?
override init(name:String){
super.init(name: name)
}
convenience init(name: String, test: Test) {
self.init(name: name)
self.test = test
}
struct Test {
var number1:Int
var number2:Int
}
}
进而
var main2 = SubMain(name: "hello")
var main3 = SubMain(name: "world", test: .init(number1: 1, number2: 2))
但是要使用您的示例,您应该通过外部类型而不是该类型的实例来访问它
var test = SubMain.Test(number1: 1, number2: 2)
推荐阅读
- c++ - 如何在 Windows-10 (VS 2019) 中编译 Apache Arrow Flight C++ 示例
- c++ - 为什么不使用互斥锁时,下面的程序不混合输出?
- vb.net - VB row.Cells("XX").Selected = True 没有真正被选中
- css - 如何在焦点上添加轮廓到材质按钮
- android - 不同用户内部测试、beta 用户的应用更新对话框
- json - JSON 响应来了,但是在使用按钮操作将其添加到单元格时,为什么会出现 nil 呢?迅速
- python - 删除稀疏矩阵的行和列
- python - 检查输入时出错:预期 input_1 有 5 个维度,但得到了形状为 (740、19、163、279) 的数组
- git - 我在 Github 上托管了我的网站,但我遇到了这个问题“在此地址配置的站点不包含请求的文件。”
- laravel - Laravel Sanctum 未使用邮递员进行身份验证