使用 Any 作为集合类型是否比使用具体类型消耗更少的内存?
\n认为
\nval list1 = listOf<Any>("ABC", "DEF", "GHI", "JKL", "MNO")\nval list2 = listOf<String>("ABC", "DEF", "GHI", "JKL", "MNO")\nRun Code Online (Sandbox Code Playgroud)\n我想知道是否list1消耗的内存比list2类型String分配内存来存储其属性(例如size)要少
list1那么,如果我不使用任何String类型函数,是不是更好?
\n编辑
\n如果我想使用集合中的其他类型怎么办?
list = listOf<Any>("ABC", 123, 12.34)\nRun Code Online (Sandbox Code Playgroud)\n它比效率更高吗
\nlist = listOf<String>("ABC", "123", "12.34")\nRun Code Online (Sandbox Code Playgroud)\n
\n编辑 2
\n感谢@Jo\xc3\xa3o Dias 和@gidds
正如@gidds 所说:
\n\n\n该列表不直接包含 String 对象,或其包含引用的任何对象 \xe2\x80\x94 。
\n
\nString 引用的大小与 Any 引用或任何其他类型的引用完全相同。\xe2\x80\x82
\n …
我做了一些谷歌搜索如何检查字符串是否有列表中的任何元素,我发现这段代码有效:
if any(i in string for i in list):
我知道这有效,但我不知道为什么.你能分享一些见解吗?
因为一道题,我考试不及格。任务是:
“设计一个程序,将任何数字从任何系统转换为十进制。
我们限制在 2 到 22 范围内的系统。”
所以我来了。我知道二进制 [2]、八进制 [8]、十进制 [10] 和十六进制 [16] 系统。每个转换系统有1分,所以它必须是一个转换器:
2->10
3->10
...
22->10
我不知道这怎么可能。考试后我问我的教授怎么做,他说:“只是 x 的 y 次方,乘以,就是这样。所有这些都有相同的规则。”
他说的话我可能是错的,因为我处于考试后的意识状态。你们知道如何解决它吗?
我看到在stackoverflow上已经有一些类似的问题,但没有一个不能像我教授所说的那样解决问题。另外,我们大约在 4 个月前开始学习 Python,我们还没有学习回复中实现的一些选项。
"""IN
str/int, any base[2-22]
OUT
十进制整数或浮点数"""
我想Any?用 Swift 保存(到 FileManager)。
它可以是一切,也可以是不符合 Codable 的类型(例如SCNNodes)。
我想将其包装到 Data 中。我知道,我不能用PropertyListEncoder.
您能让我轻松理解它是如何工作的吗?
any ×4
python ×2
base ×1
codable ×1
collections ×1
decimal ×1
file-manager ×1
if-statement ×1
kotlin ×1
string ×1
swift ×1
syntax ×1