可以看到,解析之后是一个数组,它包含两个对象,每个对象都对应着一个合约方法,这里因为a是public类型的,编译的时候会自动为它生成get()方法,所以这个合约实际是包含两个方法的,解析之后的json应该不难看懂,下面对几个关键字做以解释
type 方法类型,包括function, constructor, fallback(缺省方法)可以缺省,默认为functionname 方法名inputs 方法参数,它是一个对应数组,数组里的每个对象都是一个 参数说明name 参数名type 参数类型outputs 方法返回值,格式和inputs类型,如果没有返回值可以缺省constant 布尔值,如果为true指明方法不会修改合约的状态变量payable 布尔值,标明方法是否可以接收ether
构造方法和缺省方法不能有name 和outputs , 缺省方法也不能有inputs
向一个没有payable标注的方法发送ether会抛异常