与传统的合约相比,智能合约有三大特点:
1、合约内容公开透明
2、合约内容不可篡改
3、永久运行
目前提供对EVM、Native、MYVM、Precompiled合约类型的支持。其中,MYVM合约类型,由蚂蚁自研的MYVM虚拟机类型支持,以LLVM(Low Level Virtual Machine)编译模型支持多种合约编程语言(如Solidity、C++、Go、Java、AssemblyScript),支持更优秀的性能,以及更出色的开发者友好特性。
定义包的规范应位于源文件的顶部
package my.demo
import java.awt.Rectangle
import java.util.*
Kotlin中的注释
//---单行注释---
/*---多行注释---*/
定义函数
//带有两个Int参数、返回Int的函数:
fun sum(a:Int,b:Int):Int{
return a+b//返回的是Int
}
//主函数入口,程序执行:定义函数
fun main(args:Array<String>){
print("sum of 3 and 5 is")//print打印不换行
println(sum(3,5))//println打印换行
}
//将表达式作为函数体、返回值类型自动推断的函数:
fun sum(a:Int,b:Int)=a+b
fun main(args:Array<String>){
println("sum of 19 and 23 is${sum(19,23)}")//${}占位
}
//函数返回无意义的值
fun print_sum(a:Int,b:Int):Unit{
println("sum of$a and$b is${a+b}")//$占位
}
fun main(args:Array<String>){
print_sum(-1,8)
}
//Unit返回类型可以省略:
fun printSum(a:Int,b:Int){
println("sum of$a and$b is${a+b}")
}
fun main(args:Array<String>){
printSum(-1,8)
}
定义变量
//一次赋值--只读--局部变量
fun main(args:Array<String>){
val a:Int=1//立即赋值
val b=2//自动推断出‘Int’类型
val c:Int//如果没有初始值类型不能省略
c=3
println("a=$a,b=$b,c=$c")
}
//可变变量
fun main(args:Array<String>){
var x=5//自动推断出“Int”类型
x+=1
println("x=$x")
}
//顶层变量:
val PI=3.14
var x=0
fun incrementX(){
x+=1
}
fun main(args:Array<String>){
println("x=$x,PI=$PI")
incrementX()
println("incrementX()")
println("x=$x,PI=$PI")
}
/*变量还可以作为属性和字段使用*/