{"id":6928,"date":"2021-08-12T13:23:29","date_gmt":"2021-08-12T07:53:29","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=6928"},"modified":"2021-08-12T14:58:18","modified_gmt":"2021-08-12T09:28:18","slug":"kotlin-scope-functions-and-their-use","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/","title":{"rendered":"Kotlin Scope Functions and their use"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">As you know kotlin is the official language for Android Development since 2017.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Kotlin provides the way in which we can write clear code and make it easy to understand.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">So, today we will discuss one of the main features of koltin which is known as <\/span><b>Scope Functions<\/b><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">There are basically five scope functions in kotlin which are :<\/span><\/p>\n<ol>\n<li><b>i) let<\/b><\/li>\n<li><b>ii) run\u00a0<\/b><\/li>\n<\/ol>\n<p><b>iii) with<\/b><\/p>\n<ol>\n<li><b>iv) apply<\/b><\/li>\n<li><b>v) also<\/b><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">There are basically two differences between these functions:<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\">i) we refer to the object&#8217;s value with the help of \u201c<\/span><b>it<\/b><span style=\"font-weight: 400;\">\u201d or \u201c<\/span><b>this<\/b><span style=\"font-weight: 400;\">\u201d keyword.\u00a0<\/span><\/li>\n<li><span style=\"font-weight: 400;\">ii) these functions return either \u201c<\/span><b>context object<\/b><span style=\"font-weight: 400;\">\u201d or \u201c<\/span><b>lambda result<\/b><span style=\"font-weight: 400;\">\u201d.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Every function has its own value which we will discuss in detail with their respective examples.<\/span><b><\/b><\/p>\n<ul>\n<li aria-level=\"1\"><b>let<\/b><\/li>\n<\/ul>\n<ol>\n<li><span style=\"font-weight: 400;\">i) object value = it<\/span><\/li>\n<li><span style=\"font-weight: 400;\">ii) return value = lambda result<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">So, basically, we use the \u201c<\/span><b>let<\/b><span style=\"font-weight: 400;\">\u201d function for avoiding <\/span><b>NullPointerException <\/b><span style=\"font-weight: 400;\">and we use the null safe operator <\/span><b>?.<\/b><span style=\"font-weight: 400;\"> for calling. The piece of code will execute only when the value is not null.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Eg :<\/span><\/p>\n<pre class=\"lang:default decode:true \">fun main() {\r\n\r\nvar a: String? = null\r\n\r\na?.let{\r\n\r\nprintln(a) \/\/ this piece of code will not execute because a is null.\r\n\r\n}\r\n\r\na = \u201cKotlin\u201d\r\n\r\na?.let{\r\n\r\nprintln(a) \/\/ this piece of code will execute because here a is not null\r\n\r\n}\r\n\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">So, in the above example, you can see when <\/span><b>a <\/b><span style=\"font-weight: 400;\">is null then the code will not enter into the <\/span><b>let<\/b><span style=\"font-weight: 400;\"> block and if <\/span><b>a <\/b><span style=\"font-weight: 400;\">is not null then the let block will execute. So, this states that we use the <\/span><b>let<\/b><span style=\"font-weight: 400;\"> function to avoid <\/span><b>NullPointerException<\/b><span style=\"font-weight: 400;\">.<\/span><b><\/b><\/p>\n<ul>\n<li aria-level=\"1\"><b>apply<\/b><\/li>\n<\/ul>\n<ol>\n<li><span style=\"font-weight: 400;\">i) object value = this<\/span><\/li>\n<li><span style=\"font-weight: 400;\">ii) return value = context object<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">So, basically, the \u201capply\u201d function is mostly used for the initialization of data members of the class.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For eg :<\/span><\/p>\n<pre class=\"lang:default decode:true \">class Student {\r\n\r\nlateinit var name: String\r\n\r\nlateinit var rollNo: Int\r\n\r\nlateinit var class: Int\r\n\r\n}\r\n\r\nfun main() {\r\n\r\nval student = Student().apply {\r\n\r\nname = \u201cKotlin\u201d\r\n\r\nrollNo = 3\r\n\r\nclass = 5\r\n\r\n}\r\n\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">So, in the above example, you can see we don\u2019t have to always initialize members with the help of object (student.name = \u201cKotlin\u201d). Kotlin&#8217;s \u201capply\u201d function is easy to use and also easy to understand.<\/span><\/p>\n<ul>\n<li aria-level=\"1\"><b>with<\/b><\/li>\n<\/ul>\n<ol>\n<li><span style=\"font-weight: 400;\">i) object value = this<\/span><\/li>\n<li><span style=\"font-weight: 400;\">ii) return value = lambda result<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Here, Kotlin \u201cwith\u201d function is basically used for getting the value of data members with the help of object reference<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For eg:\u00a0<\/span><\/p>\n<pre class=\"lang:default decode:true \">class Student {\r\n\r\nlateinit var name: String\r\n\r\nlateinit var rollNo: Int\r\n\r\nlateinit var class: Int\r\n\r\n}\r\n\r\nfun main() {\r\n\r\nval student = Student().apply {\r\n\r\nname = \u201cKotlin\u201d\r\n\r\nrollNo = 3\r\n\r\nclass = 5\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\/\/ so for printing values we use with function and pass reference as an argument\r\n\r\nwith(student) {\r\n\r\nprintln(\u201c$name\u201d)\r\n\r\nprintln(\u201c$rollNo\u201d)\r\n\r\nprintln(\u201c$class\u201d)\r\n\r\n}\r\n\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">So, in the above example, you can see we don\u2019t have to use references always for printing values (like println(\u201c$student.name\u201d)).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You can easily remove this dependency with the help of with() function.<\/span><b><\/b><\/p>\n<ul>\n<li aria-level=\"1\"><b>run<\/b><\/li>\n<\/ul>\n<ol>\n<li><span style=\"font-weight: 400;\">i) object value = this<\/span><\/li>\n<li><span style=\"font-weight: 400;\">ii) return value = lambda result<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">The run function is basically a combination of \u201clet\u201d and \u201cwith\u201d which means we can check for null and also get the values.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For eg :\u00a0<\/span><\/p>\n<pre class=\"lang:default decode:true \">class Student {\r\n\r\nlateinit var name: String\r\n\r\nlateinit var rollNo: Int\r\n\r\nlateinit var class: Int\r\n\r\n}\r\n\r\nfun main() {\r\n\r\nvar student: Student? = null\r\n\r\nstudent?.run {\r\n\r\nprintln(\u201c$name\u201d) \/\/ this will not execute because student reference is null\r\n\r\n}\r\n\r\n\r\n\r\n\r\nstudent = Student().apply {\r\n\r\nname = \u201cKotlin\u201d\r\n\r\nrollNo = 4\r\n\r\nclass = 5\r\n\r\n}\r\n\r\nstudent?.run {\r\n\r\nprintln(\u201c$name\u201d)\r\n\r\nprintln(\u201c$rollNo\u201d) \/\/ this will execute as reference of student is not null\r\n\r\n}\r\n\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li aria-level=\"1\"><b>also\u00a0<\/b><\/li>\n<\/ul>\n<ol>\n<li><span style=\"font-weight: 400;\">i) object value = it<\/span><\/li>\n<li><span style=\"font-weight: 400;\">ii) return value = context object<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">It is basically used for further operations we want to perform on members.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For eg :\u00a0<\/span><\/p>\n<pre class=\"lang:default decode:true \">fun main() {\r\n\r\nval myList = mutableListOf&lt;String&gt;(\u201cKotlin\u201d, \u201cis\u201d, \u201ca\u201d)\r\n\r\nmyList.also {\r\n\r\nit.add(\u201cProgramming\u201d)\r\n\r\nit.add(\u201clanguage\u201d)\r\n\r\n}\r\n\r\nprintln(myList)\r\n\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">So, in the above example, you can see we can perform additional operations after initializing it.<\/span><\/p>\n<p><b>So, this is all about Kotlin Scope Functions<\/b><\/p>\n<p><b>For more information go to <\/b><a href=\"https:\/\/kotlinlang.org\/docs\/scope-functions.html\"><b>https:\/\/kotlinlang.org\/docs\/scope-functions.html<\/b><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As you know kotlin is the official language for Android Development since 2017. Kotlin provides the way in which we can write clear code and make it easy to understand. So, today we will discuss one of the main features of koltin which is known as Scope Functions.\u00a0 There are basically five scope functions in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6925,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,71],"tags":[],"class_list":["post-6928","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-mobile"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Kotlin Scope Functions and their use - InnovationM - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kotlin Scope Functions and their use - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"As you know kotlin is the official language for Android Development since 2017. Kotlin provides the way in which we can write clear code and make it easy to understand. So, today we will discuss one of the main features of koltin which is known as Scope Functions.\u00a0 There are basically five scope functions in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-12T07:53:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-08-12T09:28:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/08\/kotlin-1024x576.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/kotlin-scope-functions-and-their-use\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/kotlin-scope-functions-and-their-use\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Kotlin Scope Functions and their use\",\"datePublished\":\"2021-08-12T07:53:29+00:00\",\"dateModified\":\"2021-08-12T09:28:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/kotlin-scope-functions-and-their-use\\\/\"},\"wordCount\":445,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/kotlin-scope-functions-and-their-use\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/kotlin.png\",\"articleSection\":[\"Android\",\"Mobile\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/kotlin-scope-functions-and-their-use\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/kotlin-scope-functions-and-their-use\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/kotlin-scope-functions-and-their-use\\\/\",\"name\":\"Kotlin Scope Functions and their use - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/kotlin-scope-functions-and-their-use\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/kotlin-scope-functions-and-their-use\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/kotlin.png\",\"datePublished\":\"2021-08-12T07:53:29+00:00\",\"dateModified\":\"2021-08-12T09:28:18+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/kotlin-scope-functions-and-their-use\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/kotlin-scope-functions-and-their-use\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/kotlin-scope-functions-and-their-use\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/kotlin.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/kotlin.png\",\"width\":3556,\"height\":2000},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/kotlin-scope-functions-and-their-use\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kotlin Scope Functions and their use\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kotlin Scope Functions and their use - InnovationM - Blog","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:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/","og_locale":"en_US","og_type":"article","og_title":"Kotlin Scope Functions and their use - InnovationM - Blog","og_description":"As you know kotlin is the official language for Android Development since 2017. Kotlin provides the way in which we can write clear code and make it easy to understand. So, today we will discuss one of the main features of koltin which is known as Scope Functions.\u00a0 There are basically five scope functions in [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/","og_site_name":"InnovationM - Blog","article_published_time":"2021-08-12T07:53:29+00:00","article_modified_time":"2021-08-12T09:28:18+00:00","og_image":[{"width":1024,"height":576,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/08\/kotlin-1024x576.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Kotlin Scope Functions and their use","datePublished":"2021-08-12T07:53:29+00:00","dateModified":"2021-08-12T09:28:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/"},"wordCount":445,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/08\/kotlin.png","articleSection":["Android","Mobile"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/","url":"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/","name":"Kotlin Scope Functions and their use - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/08\/kotlin.png","datePublished":"2021-08-12T07:53:29+00:00","dateModified":"2021-08-12T09:28:18+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/08\/kotlin.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/08\/kotlin.png","width":3556,"height":2000},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/kotlin-scope-functions-and-their-use\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Kotlin Scope Functions and their use"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/6928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=6928"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/6928\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/6925"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=6928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=6928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=6928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}