# public property

[Swift](https://lochiwei.gitbook.io/ios/swift) ⟩ [type](https://lochiwei.gitbook.io/ios/swift/type) ⟩ [property](https://lochiwei.gitbook.io/ios/swift/type/prop) ⟩ public property

{% hint style="success" %}

{% endhint %}

{% tabs %}
{% tab title="💈範例" %}
{% hint style="warning" %}
'<mark style="color:blue;">`public`</mark>' modifier is <mark style="color:yellow;">redundant</mark> for [property](https://lochiwei.gitbook.io/ios/swift/type/prop)╱<mark style="color:orange;">static</mark> property╱instance method╱[initializer](https://lochiwei.gitbook.io/ios/swift/type/init/initializers)╱[operator](https://lochiwei.gitbook.io/ios/swift/op) declared in a <mark style="color:orange;">public</mark> [extension](https://lochiwei.gitbook.io/ios/swift/type/ext).
{% endhint %}

```swift
// public extension
public extension Vector2D {

    // static property
    public static var zero: Self {          // <--- ⭐️ `public`: redundant❗️
        return Self.init(x: 0, y: 0)
    }
    
    // initializer
    public init(_ x: Scalar, _ y: Scalar) {  // <--- ⭐️ `public`: redundant❗️
        self.init(x: x, y: y)
    }
    
    // property
    public var normSquared: Scalar {         // <--- ⭐️ `public`: redundant❗️
        x * x + y * y
    }
    
    // operator function
    public static func + (u: Self, v: Self) -> Self { // <--- ⭐️ `public`: redundant❗️
        return Self.init(x: u.x + v.x, y: u.y + v.y)
    }
    
    // instance method
    public func dot(_ v: Self) -> Scalar {   // <--- ⭐️ `public`: redundant❗️
        return x * v.x + y * v.y
    }
}
```

{% endtab %}

{% tab title="📘 手冊" %}
\*
{% endtab %}
{% endtabs %}
