value-type 相关问题

在计算机科学中,术语值类型通常用于表示两种数据类型之一:值的类型或具有深拷贝语义的对象类型。

如何以“__SwiftValue”的形式获取 swift 结构体的实际类型

我正在使用 YapDatabase 来编码/解码我的 Swift 值类型。解码后,类型信息似乎丢失了,即 type(of:element) 返回 __SwiftValue 而不是,例如 Reservation。 如果我...

回答 1 投票 0

“子类化”通用结构

是否可以在 swift 中对通用结构进行子类化? 假设我们有一个结构: 结构 Foo {} 我想“子类”它来添加一些功能: 构造一些东西{} 结构栏 是否可以在 swift 中子类化通用结构? 假设我们有一个结构: struct Foo<T> {} 我想对其进行“子类化”以添加一些功能: struct Something {} struct Bar<F>: Foo<Something> { /*<<<= ERROR: Inheritance from non-protocol type 'Foo<Something>' */ let store: Something let someF: F } 如果将 struct 替换为 class,则此示例有效。 class Foo<T> {} //struct Bar1<T>: Foo<T> { /* Inheritance from non-protocol type 'Foo<T>' */ // let name = "Bar" //} class Something {} class Bar<F>: Foo<Something> { /* Inheritance from non-protocol type 'Foo<Something>' */ let store: F? init(value: F?) { self.store = value } } 知道如何使其适用于结构吗? 我试图坚持使用值类型,但 swift 让它变得很困难。 我的理解是继承是类和非类对象(如 swift 中的结构和枚举)之间的主要区别。类具有继承性,其他对象类型则没有。 因此,我认为答案是“不,不是现在,也不是永远,按照设计。” 编辑: 正如 Ammo 在下面的评论中指出的,另一个关键区别是类对象是通过引用传递的,而非类对象(如结构)是通过值传递的。 由于像struct这样的值类型不可能继承,所以我会这样构建它: struct Foo<T> { //... } struct Bar<T> { let store: Something let someT: T } 然后使用组合来构建它们: struct FooBar { let foo: Foo<SomethingFoo> let bar: Bar<SomethingBar> }

回答 2 投票 0

数组内值类型的垃圾集合

假设我有一些小数据类型 - 例如一个简单的点实现。我可以将此类型实现为引用类型(类),也可以实现为值类型(结构)。 公共类 PointClass {...

回答 1 投票 0

C# 中字符串会被装箱吗?

2024 年 1 月 5 日更新:此链接的答案似乎表明 C# 编译器在尝试将字符串转换为对象时完全删除了对象转换:https://stackoverflow.com/a/51381643/3。 ..

回答 3 投票 0

为什么必须将固定大小的缓冲区(数组)声明为不安全?

假设我想要一个 7 字节(或 3 或 777)的值类型。 我可以这样定义它: 公共结构 Buffer71 { 公共字节b0; 公共字节b1; 公共字节b2; 公共字节 b3;...

回答 3 投票 0

是引用类型字段的时候是值类型装箱吗?

有代码: 结构A { 整数b; } B级 { 一个一个; 整数b; } 问题是: B 中的 a 是否已装箱? B 中的 a 位于栈中还是堆中? A 中的 b 是否已装箱? b 是在 A 栈中还是在 hea 中...

回答 6 投票 0

c# 中可空值类型存储在哪里?栈还是堆?

C# 中可空值类型存储在哪里?栈还是堆? 我有以下代码: 整数?数字=空; 根据这个答案: 可空类型是一个由两个字段组成的结构:bool a...

回答 1 投票 0

ValueType 作为类中的属性

我对值类型作为类中的属性的概念有点困惑。 据我了解,当调用 getter 时 - 返回值类型的副本。 让我们举个例子: 公共结构 Po...

回答 2 投票 0

复制结构时“幕后”到底发生了什么?

在Swift中,Struct是值类型,而Class是引用类型。因此,两个不同的变量不能指向相同的底层结构实例,但它们可以指向相同的实例...

回答 0 投票 0

所有结构的写时快速复制吗?

我知道 swift 会优化数组的写时复制,但它会为所有结构执行此操作吗?例如: 结构点{ 变种x:浮动= 0 } var p1 = 点() var p2 = p1 //p1 和 p2 共享...

回答 2 投票 0

Kotlin 数据类是值类型还是引用类型?

我来自Swift背景。 Swift 同时支持“值”类型和“引用”类型,我有点好奇。 Kotlin有类似的概念吗? 默认情况下,任何类都是引用...

回答 1 投票 0

为什么固定大小的缓冲区(数组)一定是不安全的?

假设我想要一个 7 字节(或 3 或 777)的值类型。 我可以这样定义它: 公共结构 Buffer71 { 公共字节 b0; 公共字节 b1; 公共字节 b2; 公共字节 b3;...

回答 2 投票 0

为什么在C#中,引用型参数是隐式传递给函数的?

所以我在学习Heapsort算法的时候,我完全理解了。然而,当我看我的代码时,我实际上并不理解为什么它能工作,因为在C#中,如果我想改变一个数组的值......。

回答 1 投票 0

如何在java中把Strings作为引用类型,请看下面的案例。

案例1:String s1 = "Hello"; String s2 = s1; /现在与s1有相同的引用对吗?System.out.println(s1); /打印Hello System.out.println(s2); /打印Hello ...。

回答 2 投票 -1

如果不使用new操作符进行初始化,C++是否会像对待值类型一样对待类对象?

示例代码。MyItemType a; MyItemType b; a.someNumber = 5; b = a; cout << a.someNumber << endl; cout << b.someNumber << endl; b.someNumber = 10; cout << a.someNumber &...。

回答 6 投票 2

让类中只包含值型字段

我想实现的是 一个包含了一串值型字段的容器。这个容器有以下特点 像POD一样。Mutable 可以被复制。容器的字段将...

回答 0 投票 1

C#将值类型存储在缓存中

问题给出一个返回网站上活动用户总数的函数:私有静态只读对象Lock = new object();公共静态诠释GetTotalActiveUsers(){var cache = ...

回答 1 投票 2

在Swift中检查值或引用类型

我们如何检查在函数中传递的参数是值还是引用类型?例如func isReferenceType(toTest:Any){return true //或false}正如我们在这里看到的,我们无法...

回答 2 投票 5

如何在Java中将字符串作为引用类型进行对齐?为什么以下示例未显示该内容

情况1:字符串s1 =“ Hello”;字符串s2 = s1; //现在与s1的引用相同吗? System.out.println(s1); //打印Hello System.out.println(s2); //打印Hello ...

回答 2 投票 0

如何在Java中将字符串作为引用类型进行对齐?上面的示例如何不显示

情况1-字符串s1 =“ Hello”;字符串s2 = s1; //现在与s1的引用相同吗? System.out.println(s1); //打印Hello System.out.println(s2); //打印Hello ...

回答 1 投票 -1

© www.soinside.com 2019 - 2024. All rights reserved.