mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
| pragma experimental ABIEncoderV2;
 | |
| 
 | |
| contract C {
 | |
|     struct T {
 | |
|         uint a;
 | |
|         uint b;
 | |
|         string s;
 | |
|     }
 | |
|     bool[2][] flags;
 | |
|     function r() public returns (bool[3] memory) {
 | |
|         return [true, false, true];
 | |
|     }
 | |
|     function s() public returns (uint[2] memory, uint) {
 | |
|         return ([uint(123), 456], 789);
 | |
|     }
 | |
|     function u() public returns (T[2] memory) {
 | |
|         return [T(23, 42, "any"), T(555, 666, "any")];
 | |
|     }
 | |
|     function v() public returns (bool[2][] memory) {
 | |
|         return flags;
 | |
|     }
 | |
|     function w1() public returns (string[1] memory) {
 | |
|         return ["any"];
 | |
|     }
 | |
|     function w2() public returns (string[2] memory) {
 | |
|         return ["any", "any"];
 | |
|     }
 | |
|     function w3() public returns (string[3] memory) {
 | |
|         return ["any", "any", "any"];
 | |
|     }
 | |
|     function x() public returns (string[2] memory, string[3] memory) {
 | |
|         return (["any", "any"], ["any", "any", "any"]);
 | |
|     }
 | |
| }
 | |
| // ----
 | |
| // r() -> true, false, true
 | |
| // s() -> 123, 456, 789
 | |
| // u() -> 0x20, 0x40, 0xE0, 23, 42, 0x60, 3, "any", 555, 666, 0x60, 3, "any"
 | |
| // v() -> 0x20, 0
 | |
| // w1() -> 0x20, 0x20, 3, "any"
 | |
| // w2() -> 0x20, 0x40, 0x80, 3, "any", 3, "any"
 | |
| // w3() -> 0x20, 0x60, 0xa0, 0xe0, 3, "any", 3, "any", 3, "any"
 | |
| // x() -> 0x40, 0x0100, 0x40, 0x80, 3, "any", 3, "any", 0x60, 0xa0, 0xe0, 3, "any", 3, "any", 3, "any"
 | |
| 
 |