Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 432521
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 12, 20262026-05-12T20:04:58+00:00 2026-05-12T20:04:58+00:00

I can assign a tuple as follows: var (min, max) = (1, 2) But

  • 0

I can assign a tuple as follows:

var (min, max) = (1, 2)

But I cannot then re-assign as follows

(min, max) = (1, 3) //compiler error: ';' expected but '=' found

Instead I seem to have to do:

min = 1
max = 3

Why does the latter work whereas the former does not?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-12T20:04:58+00:00Added an answer on May 12, 2026 at 8:04 pm

    Well, because it was spec’ed that way, I suppose.

    This, the tuple assignment, is an example of pattern matching. Pattern matching happens in three places that I recall of:

    var PATTERN = ... // or val
    
    for (PATTERN <- ...) ...
    
    case PATTERN => ...
    

    So all these cases work:

    val l = List((1,'a'), (2,'b'), (3,'c'))
    var (n, c) = l(0)
    for ((n, c) <- l) println(n+": "+c)
    l(1) match {
      case (n, c) => println(n+": "+c)
    }
    

    Now, take the last example, the one using case. Note that n and c in that example are not the same n and c defined a bit earlier. The pattern match will assign values to new identifiers n and c, which will shadow the previous definition for the escope of the case statement. The same thing happened on the for example, which did not change n and c previously defined.

    Now, what you want to happen is to overwrite the previous value, instead of assign new values to new identifiers. That’s not how pattern matching works, which means making it happen would entail an entirely new rule. Since Scala gently prods people towards immutability, I suppose it’s not unreasonable they did not create a new rule just to handle this.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I can assign char to int as follows. char c = 'a'; int a
It seems you can assign a keyboard shortcut to almost everything else, but I
I've subclassed MKAnnotation so that i can assign objects to annotations and then assign
I'd like to know how I can assign in XAML a dependency property of
My question is if we can assign/bind some value to a certain item and
Is it possible to do template layouts which you can assign to all your
I want to overload the operator , so that I can assign my fraction
Can I assign the values to datagridview cells at a time like datagridview1[0,0].value =
can we assign null value to struct type of variable? struct MyStruct { }
How can I assign values of the textbox to the datagridview cell ?

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.