File Structure
A single Solidity source file may define multiple contracts. A contract is defined
with the contract
keyword, following by the contract name and then the definition
of the contract in between curly braces {
and }
.
contract A {
/// foo simply returns true
function foo() public returns (bool) {
return true;
}
}
contract B {
/// bar simply returns false
function bar() public returns (bool) {
return false;
}
}
When compiling this, Solang will output contract code for both A and B, irrespective of the name of source file. Although multiple contracts maybe defined in one solidity source file, it might be convenient to define only single contract in each file, and keep contract name the same as the file name (with the .sol extension).