{"id":3629,"date":"2016-04-13T02:29:09","date_gmt":"2016-04-13T02:29:09","guid":{"rendered":"http:\/\/www.garysieling.com\/blog\/?p=3629"},"modified":"2016-04-13T02:29:09","modified_gmt":"2016-04-13T02:29:09","slug":"scala-match-value","status":"publish","type":"post","link":"https:\/\/www.garysieling.com\/blog\/scala-match-value\/","title":{"rendered":"Scala: match on value"},"content":{"rendered":"<p>IF you want to match on a value in Scala you can do so simply. Here, I&#8217;m using it to handle commands from RabbitMQ in this format:<\/p>\n<pre lang=\"scala\">\nindex,garysieling.com\nupdate,garysieling.com,12345\n<\/pre>\n<p>Here is the code:<\/p>\n<pre lang=\"scala\">\nval items = message.split(\",\")\nval command = items(0);\n\ncommand match {\n  case \"index\" => {\n    val domain = items(1)\n    ...\n  }\n  case \"update\" => {\n    val id = items(1)\n    val domain = items(2)\n\n    ...\n  }\n}\n<\/pre>\n<p>You can also just match on the array itself. The nice thing about this is you can have the different match entries be of different length. Unfortunately you have to write &#8220;Array&#8221; on each line &#8211; if you leave these off they are treated like a Tuple, which is not the output of split:<\/p>\n<pre lang=\"scala\">\ncase Array(\"index\", domain: String) => {\n...\n}\ncase Array(\"update\", id: String, arg: String) => {\n}\n<\/pre>\n<p>You can also leave off the type definitions (I put these in to start so I could get it to compile). You can also remove the brackets if the right hand side is one expression:<br \/>\ncase Array(&#8220;index&#8221;, domain) => &#8230;<br \/>\ncase Array(&#8220;update&#8221;, id, arg) => &#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>IF you want to match on a value in Scala you can do so simply. Here, I&#8217;m using it to handle commands from RabbitMQ in this format: index,garysieling.com update,garysieling.com,12345 Here is the code: val items = message.split(&#8220;,&#8221;) val command = items(0); command match { case &#8220;index&#8221; => { val domain = items(1) &#8230; } case &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.garysieling.com\/blog\/scala-match-value\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Scala: match on value&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[4],"tags":[244,300,480,486],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"IF you want to match on a value in Scala you can do so simply. Here, I&#039;m using it to handle commands from RabbitMQ in this format: index,garysieling.com update,garysieling.com,12345 Here is the code: val items = message.split(&quot;,&quot;) val command = items(0); command match { case &quot;index&quot; =&gt; { val domain = items(1) ... } case\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"gary\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.garysieling.com\/blog\/scala-match-value\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Gary Sieling - Software Engineer\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Scala: match on value - Gary Sieling\" \/>\n\t\t<meta property=\"og:description\" content=\"IF you want to match on a value in Scala you can do so simply. Here, I&#039;m using it to handle commands from RabbitMQ in this format: index,garysieling.com update,garysieling.com,12345 Here is the code: val items = message.split(&quot;,&quot;) val command = items(0); command match { case &quot;index&quot; =&gt; { val domain = items(1) ... } case\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.garysieling.com\/blog\/scala-match-value\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2016-04-13T02:29:09+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2016-04-13T02:29:09+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Scala: match on value - Gary Sieling\" \/>\n\t\t<meta name=\"twitter:description\" content=\"IF you want to match on a value in Scala you can do so simply. Here, I&#039;m using it to handle commands from RabbitMQ in this format: index,garysieling.com update,garysieling.com,12345 Here is the code: val items = message.split(&quot;,&quot;) val command = items(0); command match { case &quot;index&quot; =&gt; { val domain = items(1) ... } case\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scala-match-value\\\/#blogposting\",\"name\":\"Scala: match on value - Gary Sieling\",\"headline\":\"Scala: match on value\",\"author\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#organization\"},\"datePublished\":\"2016-04-13T02:29:09+00:00\",\"dateModified\":\"2016-04-13T02:29:09+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scala-match-value\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scala-match-value\\\/#webpage\"},\"articleSection\":\"Code Examples, functional programming, java, scala, scala-lang\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scala-match-value\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.garysieling.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/code-examples\\\/#listItem\",\"name\":\"Code Examples\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/code-examples\\\/#listItem\",\"position\":2,\"name\":\"Code Examples\",\"item\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/code-examples\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scala-match-value\\\/#listItem\",\"name\":\"Scala: match on value\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scala-match-value\\\/#listItem\",\"position\":3,\"name\":\"Scala: match on value\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/code-examples\\\/#listItem\",\"name\":\"Code Examples\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#organization\",\"name\":\"Gary Sieling\",\"description\":\"Software Engineer\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/\",\"name\":\"gary\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scala-match-value\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0be925276d848ffe98a6a9dc8cf33e67?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"gary\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scala-match-value\\\/#webpage\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scala-match-value\\\/\",\"name\":\"Scala: match on value - Gary Sieling\",\"description\":\"IF you want to match on a value in Scala you can do so simply. Here, I'm using it to handle commands from RabbitMQ in this format: index,garysieling.com update,garysieling.com,12345 Here is the code: val items = message.split(\\\",\\\") val command = items(0); command match { case \\\"index\\\" => { val domain = items(1) ... } case\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scala-match-value\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\"},\"datePublished\":\"2016-04-13T02:29:09+00:00\",\"dateModified\":\"2016-04-13T02:29:09+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/\",\"name\":\"Gary Sieling\",\"description\":\"Software Engineer\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Scala: match on value - Gary Sieling","description":"IF you want to match on a value in Scala you can do so simply. Here, I'm using it to handle commands from RabbitMQ in this format: index,garysieling.com update,garysieling.com,12345 Here is the code: val items = message.split(\",\") val command = items(0); command match { case \"index\" => { val domain = items(1) ... } case","canonical_url":"https:\/\/www.garysieling.com\/blog\/scala-match-value\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.garysieling.com\/blog\/scala-match-value\/#blogposting","name":"Scala: match on value - Gary Sieling","headline":"Scala: match on value","author":{"@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author"},"publisher":{"@id":"https:\/\/www.garysieling.com\/blog\/#organization"},"datePublished":"2016-04-13T02:29:09+00:00","dateModified":"2016-04-13T02:29:09+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.garysieling.com\/blog\/scala-match-value\/#webpage"},"isPartOf":{"@id":"https:\/\/www.garysieling.com\/blog\/scala-match-value\/#webpage"},"articleSection":"Code Examples, functional programming, java, scala, scala-lang"},{"@type":"BreadcrumbList","@id":"https:\/\/www.garysieling.com\/blog\/scala-match-value\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.garysieling.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/category\/code-examples\/#listItem","name":"Code Examples"}},{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/category\/code-examples\/#listItem","position":2,"name":"Code Examples","item":"https:\/\/www.garysieling.com\/blog\/category\/code-examples\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/scala-match-value\/#listItem","name":"Scala: match on value"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/scala-match-value\/#listItem","position":3,"name":"Scala: match on value","previousItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/category\/code-examples\/#listItem","name":"Code Examples"}}]},{"@type":"Organization","@id":"https:\/\/www.garysieling.com\/blog\/#organization","name":"Gary Sieling","description":"Software Engineer","url":"https:\/\/www.garysieling.com\/blog\/"},{"@type":"Person","@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author","url":"https:\/\/www.garysieling.com\/blog\/author\/gary\/","name":"gary","image":{"@type":"ImageObject","@id":"https:\/\/www.garysieling.com\/blog\/scala-match-value\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/0be925276d848ffe98a6a9dc8cf33e67?s=96&d=identicon&r=g","width":96,"height":96,"caption":"gary"}},{"@type":"WebPage","@id":"https:\/\/www.garysieling.com\/blog\/scala-match-value\/#webpage","url":"https:\/\/www.garysieling.com\/blog\/scala-match-value\/","name":"Scala: match on value - Gary Sieling","description":"IF you want to match on a value in Scala you can do so simply. Here, I'm using it to handle commands from RabbitMQ in this format: index,garysieling.com update,garysieling.com,12345 Here is the code: val items = message.split(\",\") val command = items(0); command match { case \"index\" => { val domain = items(1) ... } case","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.garysieling.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.garysieling.com\/blog\/scala-match-value\/#breadcrumblist"},"author":{"@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author"},"creator":{"@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author"},"datePublished":"2016-04-13T02:29:09+00:00","dateModified":"2016-04-13T02:29:09+00:00"},{"@type":"WebSite","@id":"https:\/\/www.garysieling.com\/blog\/#website","url":"https:\/\/www.garysieling.com\/blog\/","name":"Gary Sieling","description":"Software Engineer","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.garysieling.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Gary Sieling - Software Engineer","og:type":"article","og:title":"Scala: match on value - Gary Sieling","og:description":"IF you want to match on a value in Scala you can do so simply. Here, I'm using it to handle commands from RabbitMQ in this format: index,garysieling.com update,garysieling.com,12345 Here is the code: val items = message.split(&quot;,&quot;) val command = items(0); command match { case &quot;index&quot; =&gt; { val domain = items(1) ... } case","og:url":"https:\/\/www.garysieling.com\/blog\/scala-match-value\/","article:published_time":"2016-04-13T02:29:09+00:00","article:modified_time":"2016-04-13T02:29:09+00:00","twitter:card":"summary_large_image","twitter:title":"Scala: match on value - Gary Sieling","twitter:description":"IF you want to match on a value in Scala you can do so simply. Here, I'm using it to handle commands from RabbitMQ in this format: index,garysieling.com update,garysieling.com,12345 Here is the code: val items = message.split(&quot;,&quot;) val command = items(0); command match { case &quot;index&quot; =&gt; { val domain = items(1) ... } case"},"aioseo_meta_data":{"post_id":"3629","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2023-02-04 16:47:51","updated":"2026-07-06 01:44:40","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.garysieling.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.garysieling.com\/blog\/category\/code-examples\/\" title=\"Code Examples\">Code Examples<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tScala: match on value\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.garysieling.com\/blog"},{"label":"Code Examples","link":"https:\/\/www.garysieling.com\/blog\/category\/code-examples\/"},{"label":"Scala: match on value","link":"https:\/\/www.garysieling.com\/blog\/scala-match-value\/"}],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts\/3629"}],"collection":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/comments?post=3629"}],"version-history":[{"count":0,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts\/3629\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/media?parent=3629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/categories?post=3629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/tags?post=3629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}