Learn Solidity - Build Decentralized Application in Ethereum

Learn Solidity: Input and Output Parameters of Functions

In this post, we will understand the how Input & output Parameters can be defined in Solidity Language. [pastacode lang=”javascript” manual=”pragma%20solidity%200.4.8%3B%20%0A%0A%2F*%0A*%20%40title%20An%20Example%0A*%20%40author%20Toshendra%20Sharma%0A*%20%40notice%20Example%20for%20the%20Solidity%20Course%0A*%2F%0A%0A%2F%2F%20As%20in%20Javascript%2C%20functions%20may%20take%20parameters%20as%20input%3B%20%0A%2F%2F%20unlike%20in%20Javascript%20and%20C%2C%20they%20may%20also%20return%20arbitrary%20number%20of%20parameters%20as%20output.%0A%0A%2F%2F%20The%20input%20parameters%20are%20declared%20the%20same%20way%20as%20variables%20are.%20%0A%2F%2F%20As%20an%20exception%2C%20unused%20parameters%20can%20omit%20the%20variable%20name.%20%0A%0A%0Acontract%20InputAndOutputParameters%20%7B%0A%0A%20%20%20%20%0A%20%20%20%20uint%20public%20constructorInput1%3B%0A%20%20%20%20address%20public%20constructorInput2%3B%0A%20%20%20%20uint%20public%20sum%3B%0A%20%20%20%20uint%20public%20product%3B%0A%20%20%20%20uint%20public%20multiplyByThreeValue%3B%0A%0A%0A%20%20%20%20%2F%2F%20For%20example%2C%20suppose%20we%20want%20our%20contract%20to%20accept%20%20%0A%20%20%20%20%2F%2Ftwo%20parameters%2C%20we%20would%20write%20something%20like%3A%0A%20%20%20%20function%20InputAndOutputParameters(uint%20_inputParam1%2C%20address%20_inputParam2)%20%7B%0A%20%20%20%20%20%20%20%2F%2F%20Initialize%20state%20variables%20here%0A%20%20%20%20%20%20%20constructorInput1%20%3D%20_inputParam1%3B%0A%20%20%20%20%20%20%20constructorInput2%20%3D%20_inputParam2%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20The%20output%20parameters%20can%20be%20declared%20with%20the%20same%20syntax%20after%20the%20returns%20keyword.%20%0A%20%20%20%20%2F%2F%20For%20example%2C%20suppose%20we%20wished%20to%20return%20%20one%20value%3A%20then%20we%20would%20write%20this%3A%0A%0A%20%20%20%20function%20multiplyByThree(uint%20_inputParam1)%20returns%20(uint%20m)%7B%0A%20%20%20%20%20%20%20%20multiplyByThreeValue%20%3D%20_inputParam1%20*%203%3B%0A%20%20%20%20%20%20%20%20m%20%3D%20multiplyByThreeValue%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20Let’s%20say%20we%20want%20to%20return%20two%20values%20the%20we%20would%20write%20something%20like%20this%0A%0A%20%20%20%20function%20sumAndProduct1(uint%20_inputParam1%2C%20uint%20_inputParam2)%20returns%20(uint%20s%2C%20uint%20p)%7B%0A%20%20%20%20%20%20%20%20sum%20%3D%20_inputParam1%20%2B%20_inputParam2%3B%0A%20%20%20%20%20%20%20%20product%20%3D%20_inputParam1%20*%20_inputParam2%3B%0A%20%20%20%20%20%20%20%20s%20%3D%20sum%3B%0A%20%20%20%20%20%20%20%20p%20%3D%20product%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20please%20note%20that%20variables%20name%20can%20be%20ommitted%20in%20returns%20as%20well%20as%20in%20function%20call.%0A%20%20%20%20function%20sumAndProduct2(uint%20_inputParam1%2C%20uint%20_inputParam2)%20returns%20(uint%2C%20uint)%7B%0A%20%20%20%20%20%20%20%20sum%20%3D%20_inputParam1%20%2B%20_inputParam2%3B%0A%20%20%20%20%20%20%20%20product%20%3D%20_inputParam1%20*%20_inputParam2%3B%0A%20%20%20%20%20%20%20%20return%20(sum%2C%20product)%3B%0A%20%20%20%20%7D%0A%0A%7D” message=”” highlight=”” provider=”manual”/]  
Read More