我刚刚开始进行函数式编程。我目前要开始的小项目是一场基本的口袋妖怪战斗。
先写代码,再解释。
let choosePokemon () =
let mutable pokemon = DemoData.schiggy
let msg = Console.ReadLine()
match msg with
| "Schiggy" -> pokemon <- DemoData.schiggy
| "Pikachu" -> pokemon <- DemoData.pikachu
| "Kleinstein" -> pokemon <- DemoData.kleinstein
| "Karpador" -> pokemon <- DemoData.karpador
pokemon
Run Code Online (Sandbox Code Playgroud)
我目前要求人们输入 Pokemon 的名称,如果它与预定义的集合(Schiggy、Pikachu、Kleinstein 或 Karpador)相匹配,则会为他们提供相应的 Pokemon。或者它给他们默认的口袋妖怪。
我目前正在创建它,然后将其与“let mutable pokemon = DemoData.schiggy”匹配。我不想要这样。我只想根据它的名称来分配它。
如果我可以不使用该行,我将避免使其可变,无论如何,这是我不想要的。
进一步的问题是:当口袋妖怪互相攻击时,他们的生命值会减少。
面对不断变化的 int 值时,如何避免使用可变 int?
提前致谢 :)