Я получаю сообщение об ошибке в первом члене (2-я строка кода) - PullRequest
0 голосов
/ 14 мая 2019

получение сообщения об ошибке в первой части 'member',

type Account = {accountNumber:string; mutable balance:float} 

    member this.Withdraw(cash:float) = 
        if cash > this.balance then
            Console.WriteLine("Insufficient Funds. The Amount you wish to withdraw is greater than your current account balance.")
        else
            this.balance <- this.balance - cash
            Console.WriteLine("You have withdrawn £" + cash.ToString() + ". Your balance is now: £" + this.balance.ToString())

    member this.Deposit(cash:float) =
        this.balance <- this.balance + cash
        Console.WriteLine("£" + cash.ToString() + " Cash Deposited. Your new Balance is: £" + this.balance.ToString())

    member this.Print = 
        Console.WriteLine("Account Number: " + this.accountNumber)
        Console.WriteLine("Balance: £" + this.balance.ToString())

программа должна определить тип f # с именем Account, который содержит поле accountNumber (строка) и баланс (float). тип должен включать методы для снятия и внесения денег на счет вместе с элементом печати, который отображает значения полей в одной строке в консоли. Если сумма снятия превышает остаток на счете, транзакцию следует отменить и отобразить соответствующее сообщение.

1 Ответ

4 голосов
/ 14 мая 2019

Насколько я вижу, единственное, что не так с вашим кодом - это отступ - когда вы добавляете элементы в запись, ключевое слово member должно быть выровнено с { определения записи.

Вы можете правильно определить тип, добавив новую строку после = в первой строке:

type Account = 
    {accountNumber:string; mutable balance:float} 

    member this.Withdraw(cash:float) = 
        if cash > this.balance then
            Console.WriteLine("Insufficient Funds. The Amount you wish to withdraw is greater than your current account balance.")
        else
            this.balance <- this.balance - cash
            Console.WriteLine("You have withdrawn £" + cash.ToString() + ". Your balance is now: £" + this.balance.ToString())

    member this.Deposit(cash:float) =
        this.balance <- this.balance + cash
        Console.WriteLine("£" + cash.ToString() + " Cash Deposited. Your new Balance is: £" + this.balance.ToString())

    member this.Print() = 
        Console.WriteLine("Account Number: " + this.accountNumber)
        Console.WriteLine("Balance: £" + this.balance.ToString())

Другая проблема в вашем коде заключается в том, что Print определяется как свойствоа не метод, поэтому моя версия также добавляет параметр () - это не совсем ошибка, но определенно рекомендуется определять побочные эффекты как методы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...