当前位置:  开发笔记 > 编程语言 > 正文

在Scala中将字符串转换为运算符

如何解决《在Scala中将字符串转换为运算符》经验,为你挑选了1个好方法。

如何将Scala中的字符串转换为相应的运算符?给定两个整数和字符串"+"我想要添加这两个整数的结果.



1> Alexey Roman..:

最后一个问题非常简单:

def applyOperator(x: Int, y: Int, operator: String) = operator match {
  case "+" => x + y
  case "-" => x - y
  ...
}

可以尝试使用Twitter的Eval库或反射,但我不建议使用更简单的解决方案.

对于第一个问题:运算符本身不是值,因此您不能"将字符串转换为运算符".但是你可以接近:将一个字符串转换为一个函数,它将添加(或减去等)其参数:

def stringToOperator(operator: String): (Int, Int) => Int = operator match {
  case "+" => _ + _
  case "-" => _ - _
  ...
}

你甚至可以将它概括一点,不仅仅用于整数:

def stringToOperator[A: Numeric](operator: String): (A, A) => A = operator match { ... }

(这也很明显地适用于第一个答案.)

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有