# GooglePlacesSwift Framework Reference

# AddressComponent

    struct AddressComponent

    extension AddressComponent : Copyable, CustomStringConvertible, Equatable, Escapable, Hashable, Sendable, SendableMetatype

Represents a component of an address, e.g., street number, postcode, city, etc.
- `


  ### [==(_:_:)](https://developers.google.com/maps/documentation/places/ios-sdk/reference/swift/Structs/AddressComponent#/s:17GooglePlacesSwift16AddressComponentV2eeoiySbAC_ACtFZ)


  ` Returns a Boolean value indicating whether two values are equal.

  Equality is the inverse of inequality. For any values `a` and `b`,
  `a == b` implies that `a != b` is `false`.

  #### Declaration

  Swift

      static func == (lhs: AddressComponent, rhs: AddressComponent) -> Bool

  #### Parameters

  |---|---|
  | ` lhs ` | A value to compare. |
  | ` rhs ` | Another value to compare. |

- `


  ### [description](https://developers.google.com/maps/documentation/places/ios-sdk/reference/swift/Structs/AddressComponent#/s:17GooglePlacesSwift16AddressComponentV11descriptionSSvp)


  ` A textual representation of this instance.

  Calling this property directly is discouraged. Instead, convert an
  instance of any type to a string by using the `String(describing:)`
  initializer. This initializer works with any type, and uses the custom
  `description` property for types that conform to
  `CustomStringConvertible`:

      struct Point: CustomStringConvertible {
          let x: Int, y: Int

          var description: String {
              return "(\(x), \(y))"
          }
      }

      let p = Point(x: 21, y: 30)
      let s = String(describing: p)
      print(s)
      // Prints "(21, 30)"

  The conversion of `p` to a string in the assignment to `s` uses the
  `Point` type's `description` property.

  #### Declaration

  Swift

      var description: String { get }

- `


  ### [hash(into:)](https://developers.google.com/maps/documentation/places/ios-sdk/reference/swift/Structs/AddressComponent#/s:17GooglePlacesSwift16AddressComponentV4hash4intoys6HasherVz_tF)


  ` Hashes the essential components of this value by feeding them into the
  given hasher.

  Implement this method to conform to the `Hashable` protocol. The
  components used for hashing must be the same as the components compared
  in your type's `==` operator implementation. Call `hasher.combine(_:)`
  with each of these components.
  Important

  In your implementation of `hash(into:)`,
  don't call `finalize()` on the `hasher` instance provided,
  or replace it with a different instance.
  Doing so may become a compile-time error in the future.

  #### Declaration

  Swift

      func hash(into hasher: inout Hasher)

- `


  ### [hashValue](https://developers.google.com/maps/documentation/places/ios-sdk/reference/swift/Structs/AddressComponent#/s:17GooglePlacesSwift16AddressComponentV9hashValueSivp)


  ` The hash value.

  Hash values are not guaranteed to be equal across different executions of
  your program. Do not save hash values to use during a future execution.
  Important
  `hashValue` is deprecated as a `Hashable` requirement. To conform to `Hashable`, implement the `https://developers.google.com/maps/documentation/places/ios-sdk/reference/swift/Structs/AddressComponent.html#/s:17GooglePlacesSwift16AddressComponentV4hash4intoys6HasherVz_tF` requirement instead. The compiler provides an implementation for `hashValue` for you.

  #### Declaration

  Swift

      var hashValue: Int { get }

- `


  ### [init(types:name:shortName:)](https://developers.google.com/maps/documentation/places/ios-sdk/reference/swift/Structs/AddressComponent#/s:17GooglePlacesSwift16AddressComponentV5types4name9shortNameACShyAA9PlaceTypeVG_S2SSgtcfc)


  ` Instantiates an `AddressComponent` with the specified information.

  `AddressComponent`s can be gotten from a `https://developers.google.com/maps/documentation/places/ios-sdk/reference/swift/Structs/Place.html` object. This initializer can be used for
  testing.

  #### Declaration

  Swift

      init(types: Set<https://developers.google.com/maps/documentation/places/ios-sdk/reference/swift/Structs/PlaceType.html>, name: String, shortName: String? = nil)

  #### Parameters

  |---|---|
  | ` types ` | The set of `https://developers.google.com/maps/documentation/places/ios-sdk/reference/swift/Structs/PlaceType.html` that represent the various types of the component. |
  | ` name ` | The name of the component. |
  | ` shortName ` | The (optional) short name of the component. Defaults to `nil`. |

  #### Return Value

  An `AddressComponent` containing the specified information.
- `


  ### [name](https://developers.google.com/maps/documentation/places/ios-sdk/reference/swift/Structs/AddressComponent#/s:17GooglePlacesSwift16AddressComponentV4nameSSvp)


  ` Name of the address component, e.g. "Sydney"

  #### Declaration

  Swift

      var name: String { get }

- `


  ### [shortName](https://developers.google.com/maps/documentation/places/ios-sdk/reference/swift/Structs/AddressComponent#/s:17GooglePlacesSwift16AddressComponentV9shortNameSSSgvp)


  ` Short name of the address component, e.g. "AU"

  #### Declaration

  Swift

      var shortName: String? { get }

- `


  ### [types](https://developers.google.com/maps/documentation/places/ios-sdk/reference/swift/Structs/AddressComponent#/s:17GooglePlacesSwift16AddressComponentV5typesShyAA9PlaceTypeVGvp)


  ` Types associated with the address component. For a list of supported types, see
  <https://developers.google.com/places/ios-sdk/supported_types#table2>. This set will contain one
  or more `https://developers.google.com/maps/documentation/places/ios-sdk/reference/swift/Structs/PlaceType.html` defined in PlaceTypes.swift.

  #### Declaration

  Swift

      var types: Set<https://developers.google.com/maps/documentation/places/ios-sdk/reference/swift/Structs/PlaceType.html> { get }