far
介绍
far是一款可以运行在,Jvm,GraalVM上的编程语言,自带跨平台属性.
数据类型
far基本数据类型
int long string array float double byte
对象类型
object
混合类型
var(模糊类型) 包括了基本类型和对象类型
数组
数组定义和赋值
string *data = ([1,2,3]);
数组可以存储不同的数据类型
data=([1,2,"字符串"])
map
map data = ({"name":"far"});
表达式
解构表达式
(a,b) = test();
(a,b) = array;
(a,b) = ([1,2]);
三元表达式
var a = x==1 ? 100 : 99;
when 表达式
代替switch 的表达式,比switch 更强大,更方便! when表达式具有返回值,每个分支的最后一个表达式作为返回值
->左边的表达式 只接受bool表达式的情况,比如
void main(){
var testWhen = when(a=19){
a==2 => {println("下面的分支不会执行....")};
a in (1,2,3)=>{"是得,包含了2";};
a in 1..20 =>println("是得1..20包含了他");
!a =>println(a);
_=>"默认分支,这个分支就算不写,编译器也会自动生成,所以when表达式一般默认返回0";
};
println(testWhen);
}
如果test的返回值不是bool类型,就不是有效的bool表达式
必须写默认分支_=>
when() 括号中的只能是赋值表达式,far的编译器需要做变量捕获
未来版本
when 也可以用来取代 if-else if链,从而达到简化的效果, 如果不提供参数,所有的分支条件都是简单的布尔表达式,而当一个分支的条件为真时则执行该分支:
when {
x.isOdd() => print("x is odd")
x.isEven() => print("x is even")
_=> print("x is funny")
}
语句
import语句
主要作用是将in后面的字符串存入Name,方便在当前文件全局使用
如果括号表达式中的标识符,大于1个时,将以in后面的文件中的export语句导出为准,export只能导出方法
import (Name) in "xxx/xxxx";
return 语句
return 语句后面只能跟表达式或留空
for 语句
基本结构
for(初始器;循环条件表达式;计数器) {代码块}
初始器和计数器支持逗号表达式
for(int a=0,q=1;a<100;i++,c++) {u+user();}
for(;a<1;){}
for(int a=0,q=1;a<100;i++,c++) {u+user();}
for(int x=1;a<1;){}
for(int x=1;