

{"id":120717,"date":"2023-12-01T18:00:59","date_gmt":"2023-12-01T12:30:59","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=120717"},"modified":"2023-12-01T18:19:28","modified_gmt":"2023-12-01T12:49:28","slug":"subscripts-in-swift","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/","title":{"rendered":"What are Subscripts in Swift"},"content":{"rendered":"<p>Swift provides a feature called Subscripts to access elements of collection data types. This helps us to access and modify values from complex data structures in a convenient way. We use indexes to set or get values.<\/p>\n<p>For example, we can access an element of a particular index in an array as exampleArray[index]. Similarly, we can access values in a dictionary, as exampleDictionary[key].<\/p>\n<p>In this article, we\u2019ll cover the declaration and usage of subscripts. We\u2019ll learn about different concepts of swift subscripts, like subscript overriding, along with relevant examples.<\/p>\n<h2>Declaration &amp; Syntax of Swift Subscripts<\/h2>\n<p>We declare a swift subscript using the subscript keyword, and then we write one or more input parameters followed by the return type. These subscripts in Swift can be read-write or read-only. These subscripts can also have getters and setters. These are optional, but we use them to define the behavior while we modify a value via subscript.<\/p>\n<p><strong>The syntax for declaring a subscript is as follows.<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">subscript(index: Int) -&gt; ElementType {\r\n    get{\r\n        \/\/getter code\r\n      }\r\n      set(newValue){\r\n         \/\/setter code\r\n      }\r\n}<\/pre>\n<h3>Usage of Swift Subscripts<\/h3>\n<p>We access the elements using a subscript by square brackets \u2018[]\u2019. For example, we access the 2nd element of the array using subscript.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">let namesArray = [\"Swift\", \"DataFlair\", \"Subscripts\"]\r\n\/\/ using subscript to access an element of an array\r\nlet arrayElement = namesArray[1]\r\nprint(arrayElement)<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p>DataFlair<\/p>\n<h3>Subscript Options &amp; Subscript Overloading in Swift<\/h3>\n<p>Subscripts in Swift can be customized into several options. It can be customized into read-only, read-write or it can accept multiple parameters. We can have multiple implementations of a subscript in a class or a structure. Swift can infer the type of subscript depending on the values we provide. This is also known as Subscript Overloading.<\/p>\n<p>Note that while using the subscripts, we require the getter method ID, but the setter method is optional.<\/p>\n<p>For example, we can have a struct Matrix which can have two parameters (rows &amp; columns). We will use these parameters to access and modify the values of the 2D matrix.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">struct Matrix2D{\r\n    var data: [[Int]]\r\n    \r\n    init(rowCount: Int, columnCount: Int){\r\n        data = Array(repeating: Array(repeating: 1, count: columnCount), count: rowCount)\r\n    }\r\n    \/\/ creating a subscript that accepts multiple parameters\r\n    subscript(row: Int, column: Int) -&gt; Int{\r\n        get{\r\n            return data[row][column]\r\n        }\r\n        set(newValue){\r\n            data[row][column] = newValue\r\n        }\r\n    }\r\n}\r\n\r\nvar matrix = Matrix2D(rowCount: 2, columnCount: 3)\r\nprint(\"Original matrix: \\(matrix)\")\r\n\/\/ modifying the value.\r\nmatrix[1, 0] = 2023\r\nprint(\"Updated matrix: \\(matrix)\")<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p><strong>Original matrix:<\/strong> Matrix2D(data: [[0, 0, 0], [0, 0, 0]])<br \/>\n<strong>Updated matrix:<\/strong> Matrix2D(data: [[0, 0, 0], [2023, 0, 0]])<\/p>\n<h3>Swift Type Subscripts<\/h3>\n<p>Type subscripts in swift access or modify data at a type level. We define them using the static subscript keyword. We can define and call a type subscript like the following example.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">struct SquaredValue{\r\n    static subscript(num: Int) -&gt; Int {\r\n        return num * num\r\n    }\r\n}\r\n\r\nlet number = 6\r\nlet square = SquaredValue[number]\r\nprint(\"The squared value of \\(number) is \\(square).\")<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p>The squared value of 6 is 36.<\/p>\n<h3>Conclusion<\/h3>\n<p>Swift Subscripts provide a convenient way to access data from complex data structures like structs and enums. In this article, we have learned how to declare subscripts in swift. We understood how to use subscripts and how we can create our custom subscripts and use them as required. We have also gone through different kinds of subscripts in Swift.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Swift provides a feature called Subscripts to access elements of collection data types. This helps us to access and modify values from complex data structures in a convenient way. We use indexes to set&#46;&#46;&#46;<\/p>\n","protected":false},"author":581,"featured_media":120719,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27789],"tags":[28804,21771,28803,28287],"class_list":["post-120717","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-swift-tutorials","tag-subscripts-in-swift","tag-swift","tag-swift-subscripts","tag-swift-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What are Subscripts in Swift - DataFlair<\/title>\n<meta name=\"description\" content=\"In this article, we have learned how to declare subscripts in swift. We have also gone through different kinds of subscripts in swift.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What are Subscripts in Swift - DataFlair\" \/>\n<meta property=\"og:description\" content=\"In this article, we have learned how to declare subscripts in swift. We have also gone through different kinds of subscripts in swift.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-01T12:30:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-01T12:49:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/09\/swift-subscripts.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What are Subscripts in Swift - DataFlair","description":"In this article, we have learned how to declare subscripts in swift. We have also gone through different kinds of subscripts in swift.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/","og_locale":"en_US","og_type":"article","og_title":"What are Subscripts in Swift - DataFlair","og_description":"In this article, we have learned how to declare subscripts in swift. We have also gone through different kinds of subscripts in swift.","og_url":"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2023-12-01T12:30:59+00:00","article_modified_time":"2023-12-01T12:49:28+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/09\/swift-subscripts.webp","type":"image\/webp"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445"},"headline":"What are Subscripts in Swift","datePublished":"2023-12-01T12:30:59+00:00","dateModified":"2023-12-01T12:49:28+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/"},"wordCount":423,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/09\/swift-subscripts.webp","keywords":["subscripts in swift","Swift","swift subscripts","swift tutorials"],"articleSection":["Swift Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/","url":"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/","name":"What are Subscripts in Swift - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/09\/swift-subscripts.webp","datePublished":"2023-12-01T12:30:59+00:00","dateModified":"2023-12-01T12:49:28+00:00","description":"In this article, we have learned how to declare subscripts in swift. We have also gone through different kinds of subscripts in swift.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/09\/swift-subscripts.webp","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/09\/swift-subscripts.webp","width":1200,"height":628,"caption":"swift subscripts"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/subscripts-in-swift\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Swift Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/swift-tutorials\/"},{"@type":"ListItem","position":3,"name":"What are Subscripts in Swift"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam6\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/120717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/581"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=120717"}],"version-history":[{"count":5,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/120717\/revisions"}],"predecessor-version":[{"id":131180,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/120717\/revisions\/131180"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/120719"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=120717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=120717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=120717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}