当前: rebuilt with scala
了解计算机编译原理
- 内建类型 :
Int
,Double
,Bool
,Char
,String
,Function
. - 数字计算 : "1 + 2 * (3 - 4)"
- 变量声明 : let,val. let 是可变变量, val 是不可变变量
- 字面量 : "12", "1.01", ""string literal"", "true"
- 内建函数 : "print" . "print("hello, world")"
- bool类型比较 : "<", ">", ">=", "=="
- array(数组): 数组字面量、数组迭代、元素跟新和添加
- 运行脚本
- 注释: #
- if-else : if, elif, else
- 函数声明 : function
- 局部变量 : local variable
- VmyObject : Vmy结构对象支持, 字面量初始化,成员获取和更新
- closure(闭包)
函数声明开始于fn
或者fun
fn fnDecl()
{
let a = 1 + 2
return a ++ ":fnDecl"
}
fun funDecl()
{
println("funDecl")
}
数组字面量
let a = [1,2,3]
跟新数组元素
let a = [1, 2, 3]
a(0) = 100 # [100, 2, 3]
添加数组元素
let a = [1,2]
a += 3 # [1,2,3]
"VmyObj"
let a = {name: "Tom", }
fn GetName()
{
return a("name")
}
GetName()
a("GetName") = GetName
fn outfn()
{
let variable = 1.0
fn infn() {
variable += 4
println("variable is => " ++ variable)
}
return infn
}
val a = outfn()
a()
a()
use for with array or range-function
for i in range(10){
println("range " ++ i)
}
for value, index in range(10){
println("range " ++ value ++ " index " ++ index)
}
let arr = [1,2,3,4]
for i in arr {
println(i)
}
let k = []
for i in range(10){
k + i
}
println(k)
__G
println(__G)
let a = 1
export a
let ex = {a:"string-literal"}
export ex as EX
fn k() {
println("k-fn")
}
export {
a as A,
k
}
file => a.vmy
let a = 0
export a
let obj = {name: "name", age: "18"}
export obj as VObj
fille => main.vmy
import {a as A, VObj } from "a.vmy"
println(A)
println(VObj)