---
title: "init(_:_:_:prereleaseIdentifiers:buildMetadataIdentifiers:)"
framework: packagedescription
role: symbol
role_heading: Initializer
path: "packagedescription/version/init(_:_:_:prereleaseidentifiers:buildmetadataidentifiers:)"
---

# init(_:_:_:prereleaseIdentifiers:buildMetadataIdentifiers:)

Initializes a version struct with the provided components of a semantic version.

## Declaration

```swift
init(_ major: Int, _ minor: Int, _ patch: Int, prereleaseIdentifiers: [String] = [], buildMetadataIdentifiers: [String] = [])
```

## Parameters

- `major`: The major version number.
- `minor`: The minor version number.
- `patch`: The patch version number.
- `prereleaseIdentifiers`: The pre-release identifier.
- `buildMetadataIdentifiers`: Build metadata that identifies a build.

## Discussion

Discussion note: major >= 0 && minor >= 0 && patch >= 0. note: prereleaseIdentifiers can contain only ASCII alpha-numeric characters and “-”. note: buildMetadataIdentifiers can contain only ASCII alpha-numeric characters and “-”.
