Swift 用于'的过载\*=';它接受CGFloat
我正在学习Swift,并试图做一些非常简单的应用。我遇到了一件我无法理解的事情: 当我写作时Swift 用于'的过载\*=';它接受CGFloat,swift,Swift,我正在学习Swift,并试图做一些非常简单的应用。我遇到了一件我无法理解的事情: 当我写作时 var point = CGPoint(x: 0.6, y: 0.6) let size = CGSize(width: 15, height: 25) point.x *= size.width point.y *= size.height 编译器认为没关系。 但是如果我在扩展中写同样的内容 extension CGPoint { func scale(bySize size: CGSize
var point = CGPoint(x: 0.6, y: 0.6)
let size = CGSize(width: 15, height: 25)
point.x *= size.width
point.y *= size.height
编译器认为没关系。但是如果我在扩展中写同样的内容
extension CGPoint {
func scale(bySize size: CGSize) {
self.x *= size.width
self.y *= size.height
}
}
我有一个错误,找不到接受函数中每行提供的参数的“*=”的重载
有人能解释一下这是什么意思,有什么区别吗
点和大小在两种情况下都是相同的,为什么在第一种情况下*=运算符存在,而在第二种情况下它不存在
mutating func scale(bySize size: CGSize) {
self.x = self.x * size.width
self.y *= size.height
}
您必须声明函数想要改变“按值”结构的状态
“结构和枚举是值类型…”
如果需要在特定方法中修改结构或枚举的属性,则可以选择该方法的变异行为。。。"
Auszug aus:Apple Inc.“快速编程语言”,iBooks
您必须声明函数想要改变“按值”结构的状态
“结构和枚举是值类型…”
如果需要在特定方法中修改结构或枚举的属性,可以选择该方法的变异行为……”
Auszug aus:Apple Inc.“快速编程语言”,iBooks
您必须声明函数想要改变“按值”结构的状态
“结构和枚举是值类型…”
如果需要在特定方法中修改结构或枚举的属性,可以选择该方法的变异行为……”
Auszug aus:Apple Inc.“快速编程语言”,iBooks
您必须声明函数想要改变“按值”结构的状态
“结构和枚举是值类型…”
如果需要在特定方法中修改结构或枚举的属性,可以选择该方法的变异行为……”
Auszug aus:Apple Inc.“Swift编程语言”iBooks.您需要在实现中添加关键字
mutating
:
extension CGPoint {
mutating func scale(bySize size: CGSize) {
self.x *= size.width
self.y *= size.height
}
}
您可以在以下目录中找到:
添加了扩展的实例方法也可以修改(或变异)
实例本身。修改的结构和枚举方法
self或其属性必须将实例方法标记为mutating,仅
就像从原始实现中变异方法一样
然后,他们提供了以下示例:
extension Int {
mutating func square() {
self = self * self
}
}
var someInt = 3
someInt.square()
// someInt is now 9
您需要在实现中添加关键字
mutating
:
extension CGPoint {
mutating func scale(bySize size: CGSize) {
self.x *= size.width
self.y *= size.height
}
}
您可以在以下目录中找到:
添加了扩展的实例方法也可以修改(或变异)
实例本身。修改的结构和枚举方法
self或其属性必须将实例方法标记为mutating,仅
就像从原始实现中变异方法一样
然后,他们提供了以下示例:
extension Int {
mutating func square() {
self = self * self
}
}
var someInt = 3
someInt.square()
// someInt is now 9
您需要在实现中添加关键字
mutating
:
extension CGPoint {
mutating func scale(bySize size: CGSize) {
self.x *= size.width
self.y *= size.height
}
}
您可以在以下目录中找到:
添加了扩展的实例方法也可以修改(或变异)
实例本身。修改的结构和枚举方法
self或其属性必须将实例方法标记为mutating,仅
就像从原始实现中变异方法一样
然后,他们提供了以下示例:
extension Int {
mutating func square() {
self = self * self
}
}
var someInt = 3
someInt.square()
// someInt is now 9
您需要在实现中添加关键字
mutating
:
extension CGPoint {
mutating func scale(bySize size: CGSize) {
self.x *= size.width
self.y *= size.height
}
}
您可以在以下目录中找到:
添加了扩展的实例方法也可以修改(或变异)
实例本身。修改的结构和枚举方法
self或其属性必须将实例方法标记为mutating,仅
就像从原始实现中变异方法一样
然后,他们提供了以下示例:
extension Int {
mutating func square() {
self = self * self
}
}
var someInt = 3
someInt.square()
// someInt is now 9
此处也有说明-从实例方法内修改值类型此处也有说明-从实例方法内修改值类型此处也有说明-从实例方法内修改值类型此处也有说明-从实例方法内修改值类型