ByxScript是一门类似JavaScript的函数式动态类型编程语言,支持以下特性:
- 支持整数、浮点数、布尔值、字符串、列表、函数、对象、null八种基本数据类型
- 支持if选择语句、for循环、while循环、异常处理等常用流程控制语句
- 支持闭包、高阶函数等高级特性
数据类型 | 字面量 |
---|---|
整数 | 123 |
浮点数 | 3.14 |
布尔值 | true false |
字符串 | 'hello world!' |
列表 | [1, 2, 3.14, 'hello'] |
函数 | (a, b) => a + b |
对象 | {name: 'byx', age: 21} |
空 | null |
var i = 123
var d = 3.14
var b1 = true
var b2 = false
var s = 'hello'
var list = [1, 2, 3.14, 'hello']
var fun = (a, b) => a + b
var obj = {
name: 'byx',
age: 21,
scores: [87, 95, 81]
}
func fib(n) {
if (n == 1 || n == 2) {
return 1
}
return fib(n - 1) + fib(n - 2)
}
等价于函数类型变量:
var fib = n => {
if (n == 1 || n == 2) {
return 1
}
return fib(n - 1) + fib(n - 2)
}
var score = 72
if (85 < score && score <= 100) {
println('excellent')
} else if (75 < score && score <= 85) {
println('good')
} else if (60 < score && score <= 75) {
println('pass')
} else {
println('failed')
}
var s = 0
var i = 1
while (i <= 100) {
s += i
i++
}
println(s) // 5050
var s = 0
for (var i = 1; i <= 100; ++i) {
s += i
}
println(s) //5050
try {
println('try')
throw 'exception'
} catch (e) {
println('catch', e)
}
func Counter(init) {
var cnt = init
return {
current: () => cnt,
inc() {cnt++},
dec() {cnt--}
}
}
var c1 = Counter(100)
println(c1.current()) // 100
c1.inc()
println(c1.current()) // 101
c1.inc()
println(c1.current()) // 102
c1.dec()
println(c1.current()) // 101
c1.dec()
println(c1.current()) // 100
var c2 = Counter(200)
println(c2.current()) // 200
c2.inc()
println(c2.current()) // 201
c2.inc()
println(c2.current()) // 202
c2.dec()
println(c2.current()) // 201
c2.dec()
println(c2.current()) // 200