首页 > 解决方案 > 为什么 Data(bytes:count:) 需要一个可变变量作为其指针的源?

问题描述

鉴于此代码示例,

var int = 1
let intData = Data(bytes: &int, count: MemoryLayout.size(ofValue: Int.self))

我不明白为什么初始化程序不能接受用 声明的不可变变量let,即

let int = 1
let intData = Data(bytes: &int, count: MemoryLayout.size(ofValue: int)) // Cannot pass immutable value as inout argument: 'int' is a 'let' constant

我不明白,因为我对初始化程序的期望是从指针复制数据,而不是将其用作可变缓冲区。

提供的文件特别说,

init(bytes: UnsafeRawPointer, count: Int)
  Creates data with copied memory content.

有人可以解释一下吗?

标签: swiftpointersbuffer

解决方案


推荐阅读