gpt4 book ai didi

java - 在Java中,所有这些方法都被认为是纯函数吗?

转载 作者:行者123 更新时间:2023-12-02 06:28:20 28 4
gpt4 key购买 nike

该程序判断用户输入的字符串是否为回文。

import acm.program.ConsoleProgram;

公共(public)类 PurePalindrome 扩展 ConsoleProgram {

public void run() {
String originalString;
String reversedString;
boolean isPalindrome;

originalString = readLine("? ");
reversedString = reverseString(originalString);
isPalindrome = checkPalindrome(originalString, reversedString);

println("The word you entered " + determineWord(isPalindrome)
+ " a palindrome. " + originalString + " reversed is: "
+ reversedString + ".");
}

private boolean checkPalindrome(String word, String revWord) {
if (revWord.equals(word)) {
return true;
} else {
return false;
}
}

private String reverseString(String wordToReverse) {
String reversedWord = "";
for (int i = 0; i < wordToReverse.length(); i++) {
reversedWord = wordToReverse.charAt(i) + reversedWord;
}
return reversedWord;
}

private String determineWord(boolean palindrome) {
if (palindrome) {
return "is";
} else {
return "is not";
}

}

}

所有这些方法都会被视为纯函数吗?如果没有,为什么不呢?我在确定一个方法是否是纯函数时遇到了一些麻烦。

最佳答案

如果方法的返回值完全取决于其参数,而不取决于其他任何东西,并且没有任何副作用,则该方法是纯函数。

所以最后三个方法是纯函数,而第一个方法不是:它不返回任何内容,依赖于用户输入,并且具有在屏幕上打印的副作用。

旁注:

if (revWord.equals(word)) {
return true;
} else {
return false;
}

应替换为

return revWord.equals(word);

关于java - 在Java中,所有这些方法都被认为是纯函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20306472/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com