我设计的Fief语言简介,希望找志同道合的人一起实现

本文介绍了Fief语言的主要特点,包括面向对象、泛型支持、简洁语法等,并通过实例展示了如何利用这些特性进行编程,如面向接口编程、扩展方法及流式编程风格。

Fief语言简介
Fief语言是面向对象的,支持泛型的,简洁的语言
特点
1.面向接口编程
接口是只有成员声明而没有实现的集合体.
一个类可以显示声明对接口的继承,也可以不声明.
一个类只有实现一个接口的方法和字段,那么它就是属于这个字段不管它有没有声明继承这个接口.
这样做的好处可以看一下Go语言的接口.

2.扩展方法
类的成员是可以扩展的

3.具有函数式编程特点
函数可以赋值,作为参数传递,返回

4.流式编程风格
尽量少用空格和嵌套

5.所有的类型都属于对象
没有值类型和引用类型之分

6.不支持重载,但支持默认参数

7.类不支持私有成员
所有成员的最低访问权限是protected,这样就保证子类都能访问到父类的成员

 

interface Ia 
{
	int get();
}

interface Ib 
{
	void print(string str);
}

class A
{
	public string name;
	public int get()
	{
		return 0;
	}

	public void print(string str)
	{
		Console.WriteLine(str);
	}

	//构造函数
	public new(string n)
	{
		this.name=n;
	}
}
//类A的扩展方法
A@out()
{
	Console.WriteLine(this.name);
}

public class Test
{
	public static void Main()
	{
		A a = new.A("张三");
		a@out();
		/* 因为类A实现了接口Ia的get方法,所以虽然它没有声
		明继承Ia,但是还是属于接口Ia,所以CallIa(a)是对的 */
		CallIa(a);

		/* 同理,a也属于接口Ib */
		CallIb(a,"test print");
	}

	public static void CallIa(Ia ia)
	{
		Console.WriteLine(ia.get());
	}

	public static void CallIb(Ib ib,string str)
	{
		ib.print(str);
	}
}

/* 假如一个项目里有"会飞的东西","会跑的东西","testA" */
interface 会飞的东西
{
	void 飞();
}

interface 会跑的东西
{
	void 跑();
}

class testA
{
	public static void Call(会飞的东西 f,会跑的东西 p)
	{
		f.飞();
		p.跑();
	}
}

/* 另一个项目里有一个类 */
class 动物A
{
	public void 飞()
	{
		Console.WriteLine("飞");
	}

	public void 跑()
	{
		Console.WriteLine("跑");
	}
}
/* 第三个项目 */
public class Main
{
	public static void Main()
	{
		/* 动物A既属于会飞的东西,又属于会跑的东西所以可以调用 */
		//如果显示继承的话,必须修改动物源码继承会飞的东西,会跑的东西
		动物A a = new.动物A();
		testA.Call(a,a);
	}
}


interface itD
{
	void A(int);
	void B(string);
	void C(char);
	void D();
}

obj.is(itD)


转载于:https://my.oschina.net/haiconc/blog/182105

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值