package com.example.demo import com.example.demo.domain.Currency import com.example.demo.domain.Money import com.example.demo.domain.MoneyConfig import com.example.demo.domain.MoneyDyn import com.example.demo.domain.addMoney import com.example.demo.domain.exchange import com.example.demo.domain.plus import com.example.demo.domain.toStdMoneyFormatable import org.springframework.boot.CommandLineRunner import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication @SpringBootApplication class DemoApplication : CommandLineRunner { override fun run(vararg args: String?) { // val value1 = "50:USD" // val value2 = "30:KHR" // val money1 = Money.parse(value1) // val money2 = Money.parse(value2) // val result = money1.addMoney(money2) // // println(result) // val config = "USD=1,KHR=4000,EUR=0.99" // val result = MoneyConfig.parse(config) // println(result) MoneyConfig.parse("USD=1,KHR=4000,EUR=0.99") // val value1 = MoneyDyn(value = 2.0, currency = "USD") // val value2 = MoneyDyn(value = 20000.0, currency = "KHR") // val value3 = MoneyDyn(value = 0.99, currency = "EUR") // value1.addMoney(value2) // value1.addMoney(value3) // // // val result = value1.exchange("KHR") // println(value1.exchangeTo("KHR")) // 7 val moneyUsd = Money(2.0) .addMoney(20000.0, "USD") .exchange("KHR") .toStdMoneyFormatable() .formatMoneyDisplay() println(moneyUsd) } } fun main(args: Array) { runApplication(*args) }