【问题标题】:Proper syntax for "if" statement in J/LinkJ/Link 中“if”语句的正确语法
【发布时间】:2013-07-23 01:15:00
【问题描述】:

在 Mathematica 中使用 Java 编写(使用 J/Link)时,我是使用 Java 还是 Mathematica 语法来编写 If-Then 语句?

这个问题与任何特定代码无关。无论使用什么代码,答案都应该是相同的。我知道如何使用这两种语法编写,只是不知道该使用哪一种。

【问题讨论】:

  • 提供给您问题的代码可能会有所帮助。
  • 把代码贴出来让大家看看。我的猜测是它不起作用是因为您犯了其他一些错误(例如,使用 == 比较字符串而不是等于)。
  • 我不认为代码在这里有帮助; JLink 应该使用 Mathematica 还是 Java 语法?我想可以给出这两者的例子,但它们将不再说明。正确的评论是,“好吧,您是否尝试过每种语法中的明显语句以查看哪些有效?”
  • @NathanielFord:假设 OP 回应:“是的,我有。”我们要问的下一个问题是什么? “嗯,那个明显的代码是什么?”
  • @DavidRobinson 老实说,我还没有尝试过这两种语法。然而,那是因为当第一个语法(Mathematica 语法)不起作用时,我不得不把代码放在一边去吃晚饭。我想我会在这里提出这个问题,这样当我回来时,我就会知道我的直觉是否正确,语法是否错误,或者是否有其他问题。我还认为在 SO 上提出问题和答案是值得的,因为我无法在我正在阅读的任何文档中找到答案,而且我认为将来其他人可能会有同样的问题。跨度>

标签: java if-statement wolfram-mathematica jlink


【解决方案1】:

您不能真正在 Mathematica 中编写 java。 J/Link 只允许您通过 Mathematica 调用 Java 函数并操作基于 Java 对象创建的 Mathematica 对象。 (http://reference.wolfram.com/mathematica/JLink/tutorial/CallingJavaFromMathematica.html#15615)

因此,您将使用 Mathematica 语法编写 if 语句。 If[condition, t, f]

顺便说一句,J/Link 的另一面允许您使用 Java 中的 Mathematica。同样,如果您需要使用 Mathematica 进行计算,您将在大部分代码中编写 java 并调用 ml.Evaluate("If[condition, t, f]") 的行。 对于任何感兴趣的人,.NET/Link 的工作原理都是一样的。

【讨论】:

  • 实际上,您可以在 Mathematica 中编写自己的 Java 类。我主要将此页面用作指南:mathematica-journal.com/issue/v9i1/contents/UI_With_JLink/… 但是,它们从不涵盖 If-Then 语句。
  • 对不起,如果我不清楚,我得到的是您文章中的这一行:“我们正在编写与用 Java 编写的代码相同的代码,除了使用 Mathematica 语法。 "请注意一切仍然是真正的 Mathematica 语法 - 所以您使用的是 button@SetSize[100, 30],而不是 button.SetSize(100, 30)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多