Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

ByxScript是一门类似JavaScript的函数式动态类型编程语言,支持整数、浮点数、布尔值、字符串、列表、函数、对象、null八种基本数据类型,支持if选择语句、for循环、while循环、异常处理等常用流程控制语句,支持闭包、高阶函数等高级特性

Notifications You must be signed in to change notification settings

byx2000/byx-script-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

45 Commits

Repository files navigation

ByxScript

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)
}

if语句

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')
}

while循环

var s = 0
var i = 1
while (i <= 100) {
 s += i
 i++
}
println(s) // 5050

for循环

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

About

ByxScript是一门类似JavaScript的函数式动态类型编程语言,支持整数、浮点数、布尔值、字符串、列表、函数、对象、null八种基本数据类型,支持if选择语句、for循环、while循环、异常处理等常用流程控制语句,支持闭包、高阶函数等高级特性

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /