量化合約系統開發丨合約量化系統開發原始碼丨合約量化系統開發技術Demo

a1271916008發表於2023-03-03

  “合約ABI是以太坊生態系統中與合約互動的標準方式,不論是外部客戶端與合約的互動還是合約與合約之間的互動。”上述是以太坊官方檔案給出的定義,更通俗的理解,包含兩方面內容:搭建I8O/2857/8624


  ABI是合約介面的說明。


  ABI定義與合約進行互動資料編碼規則


  建立基本類及其例項:


  //抽象類


  abstract class Shape(private val sides:List<Double>){


  val perimeter:Double get()=sides.sum()


  abstract fun calculateArea():Double


  }


  interface RectangleProperties{


  val isSquare:Boolean


  }


  //建立矩形類


  class Rectangle(


  var height:Double,


  var length:Double


  ):Shape(listOf(height,length,height,length)),RectangleProperties{


  override val isSquare:Boolean


  get()=length==height


  override fun calculateArea():Double=height*length


  }


  //建立三角形類


  class Triangle(


  private var sideA:Double,


  private var sideB:Double,


  private var sideC:Double


  ):Shape(listOf(sideA,sideB,sideC)){


  override fun calculateArea():Double{


  val s=perimeter/2


  return Math.sqrt(s*(s-sideA)*(s-sideB)*(s-sideC))


  }


  }


  fun main(args:Array<String>){


  val rectangle=Rectangle(5.0,2.0)//不需要“new”關鍵字


  val triangle=Triangle(3.0,4.0,5.0)


  println("Area of rectangle is${rectangle.calculateArea()},its perimeter is${rectangle.perimeter}")


  println("Area of triangle is${triangle.calculateArea()},its perimeter is${triangle.perimeter}")


  }


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69983064/viewspace-2938073/,如需轉載,請註明出處,否則將追究法律責任。

相關文章