The problem is that you use the getter and setter of the computed property here! What if you want to add a didSet or willSet. Swift does not allow you to do that on regular computed properties today, this would create a strange exception. Any reader not familiar with property wrappers would not understand what these get and set will actually do, if they are part of the property or just translated to some closures.
Would this be a more elegant solution for you?
struct Circle: View {
@State
var radius: CGFloat = 1
@Binding
var diameter: CGFloat
init() {
_diameter = Binding(
get: { self.radius * 2 },
set: { newValue in self.radius = newValue / 2 }
)
}
}