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

  • SEARCH
  • Home
  • 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 6176531
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T00:07:04+00:00 2026-05-24T00:07:04+00:00

I stumbled over this question: In Scala, how would I model a bank account

  • 0

I stumbled over this question: In Scala, how would I model a bank account in a stateless, functional manner?. The proposed solution looks plausible:

// Here is the important part of the answer
class Account(balance: Int) {
    def deposit(amount: Int): Account // the implementation was left out...
}

The problem I have with this solution is that the primary constructor is public. So if the user programmer creates a new account he can pass an arbitrary value to it. What if I always want it to be zero? It’s a new account anyway, why should its amount be anything else than zero?

As far as I know it is impossible to make a public class with a private primary constructor. On the other hand it is possible for an auxiliary constructor to be private, which is exactly what I tried to do.

class Account {
  val balance = 0

  private def this(amount: Int) = {
    this()
    balance = amount // won't compile since balance is a val
  }

  def deposit(amount: Int): Account = new Account(balance + amount)
}

I know exactly what the problem is, but I have no idea how to fix it, which is kinda embarrassing…

  • 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-24T00:07:05+00:00Added an answer on May 24, 2026 at 12:07 am

    Primary constructors can in fact be private:

    case class Account private(balance:Int)
    
    object Account {
      def apply() = new Account(0)
    }
    
    println(Account())
    //doesn't compile: println(Account(100))
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

in another topic, I've stumbled over this very elegant solution by Darin Dimitrov to
I recently stumbled over this post , which introduces the collect method for Scala
The last week I stumbled over this paper where the authors mention on the
I've recently stumbled over this expression: True == False in (False,) It evaluates to
After playing around with haskell a bit I stumbled over this function: Prelude Data.Maclaurin>
I just converted a code snippet from VB.NET to C# and stumbled over this
some more networking problems. I stumbled into this question: Serialization/Deserialization of a struct to
While l was looking over some questions about MEF, I stumbled onto this particular
I just stumbled over this in some C# code...: public Foo Foo { get;
In a code review, I stumbled over this (simplified) code fragment to unregister an

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.