Vala语言的诸多特性
Tofloor
poster avatar
hummerstudio
deepin
2018-01-01 07:10
Author
之前折腾学习Vala语言时的记录,发出来分享一下。

Vala语言的诸多特点

1.语法类似C#
语法是语言的外观和形式。怎么样都行,不过当然还是越简洁明了越好。
比如引入库文件,C语言使用类似:

#include 'stdio.h'

C++语言除了上面的方式,还可以使用类似:

#include

Java语言使用:

import javax.swing.*

而Vala采用类似C#的语法,所以Vala语言是使用类似:

using Gtk;

的方式。

2.基本库是GLib
C语言的基本库是标准C语言库,其定义了基本数据类型等等信息。类似的,Vala的基本库是GLib。GLib是使用C语言编写的,但我们完全可以不去考虑GLib和标准C语言库的关系。Vala的基本库就是GLib,GLib定义了一系列的基本数据类型等等信息。这些基本类型包含C语言的基本数据类型,又有扩充,包括int,int8,int16,int32,int64,bool,unichar等等;不用去考虑它扩充了C语言的哪些部分,就当作是Vala本有的,这样便于理解。

3.基本类型有方法
如:

int a = -4.abs();
string s = a.to_string();
int b = int.max(1, 2);

4.支持逐字字符串
语法:"""..."""

5.支持字符串模板
如:

string name = "ming";
stdout.printf(@"Welcome, $name");
stdout.printf(@"3 + 2 = $(3 + 2)");

6.支持类型推导(可以使用var定义变量)!
如:

var obj = new object();
var map = new HashMap;
var str = "hello, world";
var arr = new int[10];

7.没有隐式继承
定义类需要写明继承自Object(GLib.Object)
如:

public class Foo : Object {

}

8.没有方法重载
为了保持与C兼容,没有方法重载功能,需要使用不同的方法名词来定义不同的方法(不论参数的个数、类型、顺序是否相同)


Reply Favorite View the author
All Replies
avatar
Ligocut光剪视频剪辑软件
deepin
Backbone of ecological co-construction group
2018-01-01 07:40
#1
点赞,喜欢这类型帖子
Reply View the author
avatar
135******79
deepin
2018-01-01 08:39
#2
C语言可以使用 #include
Reply View the author
avatar
chenjazz
deepin
2018-01-01 16:43
#3
语法不错!
Reply View the author