ホームページ > Java > &#&チュートリアル > これを引数としてラムダ式として試してください

これを引数としてラムダ式として試してください

Barbara Streisand
リリース: 2025-01-12 07:10:42
オリジナル
540 人が閲覧しました

引数としてのラムダ式の概念:

  • ラムダ式は、互換性のあるターゲット型を受け入れるメソッドの引数として渡すことができます。
  • これは、実行可能コードを引数として渡すことができ、コードをより表現力豊かにすることができるので便利です。

目的の例:

  • ラムダ式を使用して文字列操作関数 (文字の大文字と小文字を反転、スペースをハイフンに置換) を作成します。
  • これらの式は、changeStr() メソッドに渡され、関数が適用されて結果が返されます。

関数インターフェース構造:

  • String を受け取って返すメソッド func(String str) を使用して StringFunc インターフェイスを定義します。

changeStr() メソッドの定義:
changeStr() メソッドは 2 つのパラメータを取ります:
StringFunc 型のパラメーター (関数インターフェイス)。
操作される文字列。
このメソッドは、インターフェイス関数を String に適用し、結果を返します。

ラムダ式の使用:
例 1: 文字列の文字を反転し、それを反転変数に割り当てるラムダ式。

ラムダ式をchangeStr()に渡して文字列を反転します。

例 2: スペースをハイフンに置き換え、changeStr() に直接渡されるラムダ式。

例 3: 文字列内の文字の大文字と小文字を反転し、changeStr() に直接渡されるブロック ラムダ式。

完全なコード例:
以下は、ラムダ式を changeStr() メソッドに渡す方法を示す完全なコードです。

interface StringFunc {
    String func(String str);
}

class LambdaArgumentDemo {
    static String changeStr(StringFunc sf, String s) {
        return sf.func(s);
    }

    public static void main(String args[]) {
        String inStr = "Lambda Expressions Expand Java";
        String outStr;
        System.out.println("Here is input string: " + inStr);

        // Expressão lambda para inverter a string
        StringFunc reverse = (str) -> {
            String result = "";
            for (int i = str.length() - 1; i >= 0; i--)
                result += str.charAt(i);
            return result;
        };

        // Passando a expressão lambda 'reverse' para o método
        outStr = changeStr(reverse, inStr);
        System.out.println("The string reversed: " + outStr);

        // Expressão lambda para substituir espaços por hífens
        outStr = changeStr((str) -> str.replace(' ', '-'), inStr);
        System.out.println("The string with spaces replaced: " + outStr);

        // Expressão lambda para inverter a caixa das letras
        outStr = changeStr((str) -> {
            String result = "";
            char ch;
            for (int i = 0; i < str.length(); i++) {
                ch = str.charAt(i);
                if (Character.isUpperCase(ch))
                    result += Character.toLowerCase(ch);
                else
                    result += Character.toUpperCase(ch);
            }
            return result;
        }, inStr);
        System.out.println("The string in reversed case: " + outStr);
    }
}

ログイン後にコピー

期待される出力:

Here is input string: Lambda Expressions Expand Java
The string reversed: avaJ dnapxE snoisserpxE adbmaL
The string with spaces replaced: Lambda-Expressions-Expand-Java
The string in reversed case: lAMBDA eXPRESSIONS eXPAND jAVA

ログイン後にコピー

所見:
ラムダ式を引数としてメソッドに直接渡すと、コードの柔軟性と可読性が向上します。
文字の大文字と小文字を反転するラムダ式はより複雑ですが、メソッドに直接渡すことができます。一般に、より複雑なラムダを変数に割り当てる方が適切です。

Tente Isto asse uma expressão lambda como argumento

以上がこれを引数としてラムダ式として試してくださいの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート