Satendra Kumar created KAFKA-3768: ------------------------------------- Summary: Replace all pattern match on boolean value by if/elase block. Key: KAFKA-3768 URL: https://issues.apache.org/jira/browse/KAFKA-3768 Project: Kafka Issue Type: Bug Reporter: Satendra Kumar Priority: Minor
Scala recommend use if/else clock instead of pattern match on boolean values. For example: class Comparasion { def method1(flag: Boolean): String = { flag match { case true => "TRUE" case false => "FALSE" } } def method2(flag: Boolean): String = { if(flag) { "TRUE" }else { "FALSE" } } } Byte code comparison between method1 and method2: scala>javap -cp Comparasion Compiled from "<console>" public class Comparasion { public java.lang.String method1(boolean); Code: 0: iload_1 1: istore_2 2: iconst_1 3: iload_2 4: if_icmpne 13 7: ldc #9 // String TRUE 9: astore_3 10: goto 21 13: iconst_0 14: iload_2 15: if_icmpne 23 18: ldc #11 // String FALSE 20: astore_3 21: aload_3 22: areturn 23: new #13 // class scala/MatchError 26: dup 27: iload_2 28: invokestatic #19 // Method scala/runtime/BoxesRunTime.boxToBoolean:(Z)Ljava/lang/Boolean; 31: invokespecial #23 // Method scala/MatchError."<init>":(Ljava/lang/Object;)V 34: athrow public java.lang.String method2(boolean); Code: 0: iload_1 1: ifeq 9 4: ldc #9 // String TRUE 6: goto 11 9: ldc #11 // String FALSE 11: areturn public Comparasion(); Code: 0: aload_0 1: invokespecial #33 // Method java/lang/Object."<init>":()V 4: return } method1 have 23 line of byte code and 6 line byte code. Pattern match are more expensive comparison to if/else block. -- This message was sent by Atlassian JIRA (v6.3.4#6332)