├── .gitignore ├── .idea ├── kotlinc.xml ├── libraries │ └── KotlinJavaRuntime.xml ├── misc.xml ├── modules.xml ├── uiDesigner.xml ├── vcs.xml └── workspace.xml ├── IdiomaticKotlin.iml ├── README.md └── src ├── chap01_extension_functions ├── ExtensionFunction.kt ├── ExtensionProperties.kt └── InheritanceAndPolymorphism.kt ├── chap02_sealed_classes ├── LegacyApproach.kt └── SealedClass.kt ├── chap03_infix_function └── InfixFunction.kt ├── chap04_class_delegation └── DelegationSample.kt ├── chap05_local_function └── LocalFunction.kt ├── chap06_object_and_singleton └── Singleton.kt ├── chap07_sequence └── SequenceSample.kt ├── chap08_lambdas_sam_constructors ├── Invoke.kt ├── LambdaPass.kt ├── SAMConversion.kt └── View.java ├── chap09_lambda_receiver_dsl └── ViewCreator.kt ├── chap10_elvis_operator ├── ElvisSyntax.kt ├── ExpandedElvis.kt └── SafeCall.kt ├── chap11_property_delegation ├── Delegate.kt ├── LazyTest.kt ├── ManualLazy.kt └── ObservableTest.kt ├── chap12_higher_order_function_and_function_type └── FunctionType.kt ├── chap13_inline ├── InlinedFilter.kt ├── InlinedFunctionReference.kt ├── LambdaInstance.kt └── NotInlinedFilter.kt ├── chap14_lambda_and_control_flows ├── AnonymousFunctionReturns.kt ├── InlineReturn.kt ├── LambdaReturn.kt ├── NotinlineLambdaReturn.kt └── ReturnWithLabels.kt ├── chap15_reified_parameters ├── ReifiedParameter.kt ├── TypeErasure.kt └── TypeErasureLimitation.kt ├── chap16_noinline_crossinline ├── Crossinline.kt ├── Noinline.kt └── Safidfngd.java └── chap17_variance ├── Contravariance.java ├── Covariance.java ├── DeclarationSiteContravariance.kt ├── DeclarationSiteCovariance.kt ├── GenericInvariance.java ├── UseSiteVariance.kt └── Variance.java /.gitignore: -------------------------------------------------------------------------------- 1 | out/ 2 | -------------------------------------------------------------------------------- /.idea/kotlinc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/.idea/kotlinc.xml -------------------------------------------------------------------------------- /.idea/libraries/KotlinJavaRuntime.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/.idea/libraries/KotlinJavaRuntime.xml -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/.idea/misc.xml -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/.idea/modules.xml -------------------------------------------------------------------------------- /.idea/uiDesigner.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/.idea/uiDesigner.xml -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/.idea/vcs.xml -------------------------------------------------------------------------------- /.idea/workspace.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/.idea/workspace.xml -------------------------------------------------------------------------------- /IdiomaticKotlin.iml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/IdiomaticKotlin.iml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/README.md -------------------------------------------------------------------------------- /src/chap01_extension_functions/ExtensionFunction.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap01_extension_functions/ExtensionFunction.kt -------------------------------------------------------------------------------- /src/chap01_extension_functions/ExtensionProperties.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap01_extension_functions/ExtensionProperties.kt -------------------------------------------------------------------------------- /src/chap01_extension_functions/InheritanceAndPolymorphism.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap01_extension_functions/InheritanceAndPolymorphism.kt -------------------------------------------------------------------------------- /src/chap02_sealed_classes/LegacyApproach.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap02_sealed_classes/LegacyApproach.kt -------------------------------------------------------------------------------- /src/chap02_sealed_classes/SealedClass.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap02_sealed_classes/SealedClass.kt -------------------------------------------------------------------------------- /src/chap03_infix_function/InfixFunction.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap03_infix_function/InfixFunction.kt -------------------------------------------------------------------------------- /src/chap04_class_delegation/DelegationSample.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap04_class_delegation/DelegationSample.kt -------------------------------------------------------------------------------- /src/chap05_local_function/LocalFunction.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap05_local_function/LocalFunction.kt -------------------------------------------------------------------------------- /src/chap06_object_and_singleton/Singleton.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap06_object_and_singleton/Singleton.kt -------------------------------------------------------------------------------- /src/chap07_sequence/SequenceSample.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap07_sequence/SequenceSample.kt -------------------------------------------------------------------------------- /src/chap08_lambdas_sam_constructors/Invoke.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap08_lambdas_sam_constructors/Invoke.kt -------------------------------------------------------------------------------- /src/chap08_lambdas_sam_constructors/LambdaPass.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap08_lambdas_sam_constructors/LambdaPass.kt -------------------------------------------------------------------------------- /src/chap08_lambdas_sam_constructors/SAMConversion.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap08_lambdas_sam_constructors/SAMConversion.kt -------------------------------------------------------------------------------- /src/chap08_lambdas_sam_constructors/View.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap08_lambdas_sam_constructors/View.java -------------------------------------------------------------------------------- /src/chap09_lambda_receiver_dsl/ViewCreator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap09_lambda_receiver_dsl/ViewCreator.kt -------------------------------------------------------------------------------- /src/chap10_elvis_operator/ElvisSyntax.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap10_elvis_operator/ElvisSyntax.kt -------------------------------------------------------------------------------- /src/chap10_elvis_operator/ExpandedElvis.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap10_elvis_operator/ExpandedElvis.kt -------------------------------------------------------------------------------- /src/chap10_elvis_operator/SafeCall.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap10_elvis_operator/SafeCall.kt -------------------------------------------------------------------------------- /src/chap11_property_delegation/Delegate.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap11_property_delegation/Delegate.kt -------------------------------------------------------------------------------- /src/chap11_property_delegation/LazyTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap11_property_delegation/LazyTest.kt -------------------------------------------------------------------------------- /src/chap11_property_delegation/ManualLazy.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap11_property_delegation/ManualLazy.kt -------------------------------------------------------------------------------- /src/chap11_property_delegation/ObservableTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap11_property_delegation/ObservableTest.kt -------------------------------------------------------------------------------- /src/chap12_higher_order_function_and_function_type/FunctionType.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap12_higher_order_function_and_function_type/FunctionType.kt -------------------------------------------------------------------------------- /src/chap13_inline/InlinedFilter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap13_inline/InlinedFilter.kt -------------------------------------------------------------------------------- /src/chap13_inline/InlinedFunctionReference.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap13_inline/InlinedFunctionReference.kt -------------------------------------------------------------------------------- /src/chap13_inline/LambdaInstance.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap13_inline/LambdaInstance.kt -------------------------------------------------------------------------------- /src/chap13_inline/NotInlinedFilter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap13_inline/NotInlinedFilter.kt -------------------------------------------------------------------------------- /src/chap14_lambda_and_control_flows/AnonymousFunctionReturns.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap14_lambda_and_control_flows/AnonymousFunctionReturns.kt -------------------------------------------------------------------------------- /src/chap14_lambda_and_control_flows/InlineReturn.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap14_lambda_and_control_flows/InlineReturn.kt -------------------------------------------------------------------------------- /src/chap14_lambda_and_control_flows/LambdaReturn.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap14_lambda_and_control_flows/LambdaReturn.kt -------------------------------------------------------------------------------- /src/chap14_lambda_and_control_flows/NotinlineLambdaReturn.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap14_lambda_and_control_flows/NotinlineLambdaReturn.kt -------------------------------------------------------------------------------- /src/chap14_lambda_and_control_flows/ReturnWithLabels.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap14_lambda_and_control_flows/ReturnWithLabels.kt -------------------------------------------------------------------------------- /src/chap15_reified_parameters/ReifiedParameter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap15_reified_parameters/ReifiedParameter.kt -------------------------------------------------------------------------------- /src/chap15_reified_parameters/TypeErasure.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap15_reified_parameters/TypeErasure.kt -------------------------------------------------------------------------------- /src/chap15_reified_parameters/TypeErasureLimitation.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap15_reified_parameters/TypeErasureLimitation.kt -------------------------------------------------------------------------------- /src/chap16_noinline_crossinline/Crossinline.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap16_noinline_crossinline/Crossinline.kt -------------------------------------------------------------------------------- /src/chap16_noinline_crossinline/Noinline.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap16_noinline_crossinline/Noinline.kt -------------------------------------------------------------------------------- /src/chap16_noinline_crossinline/Safidfngd.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap16_noinline_crossinline/Safidfngd.java -------------------------------------------------------------------------------- /src/chap17_variance/Contravariance.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap17_variance/Contravariance.java -------------------------------------------------------------------------------- /src/chap17_variance/Covariance.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap17_variance/Covariance.java -------------------------------------------------------------------------------- /src/chap17_variance/DeclarationSiteContravariance.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap17_variance/DeclarationSiteContravariance.kt -------------------------------------------------------------------------------- /src/chap17_variance/DeclarationSiteCovariance.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap17_variance/DeclarationSiteCovariance.kt -------------------------------------------------------------------------------- /src/chap17_variance/GenericInvariance.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap17_variance/GenericInvariance.java -------------------------------------------------------------------------------- /src/chap17_variance/UseSiteVariance.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap17_variance/UseSiteVariance.kt -------------------------------------------------------------------------------- /src/chap17_variance/Variance.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tompee26/idiomatic-kotlin/HEAD/src/chap17_variance/Variance.java --------------------------------------------------------------------------------