00:00
刚才我们是在交互式的命令行里边做了一个简单的测试,大家会发现在命令行里边呢,我们可以直接去书写一些,编写一些scla的代码啊,只要符合scla的语法就可以啊,然后每写一行就可以直接做一个执行,我们可以在里边声明变量啊,给他赋值,然后可以做计算,另外还可以做一些控制台打印的操作,哎,所有的这些代码都是可以直接运行的,那如果说我们运行完了之后,想要退出当前的交互式命令行的话,诶,那是直接敲一个报号,然后quit可以退到命令提示符外面的命令提示符这里了啊,这是关于交互式命令行的一个使用,大家会发现这个使用尽管很方便,但是跟真实的SC代码的运行过程是不一样的啊,大家看到这相当于是敲一句就运行一句,而真正我们写这个skyla代码的时候,应该是先把。代码完整的编辑出来,先编辑这个代码源文件,然后呢,呃,做一个编译,编译生成点class自解码文件之后再去GVM上去解释执行,这才是完整的流程啊,这个过程其实我们发现跟Java是几乎一模一样的,那所以为了要测试完整的这个流程,我们还是先来回顾一下在Java里边是怎么做的啊,那我们首先在桌面上直接去新建一个Java的源代码文件的啊,我们把这个叫做hello Java,他知道Java的源文件后缀名就是Java,我们把它定义好。
01:40
接下来在里边做一个编辑啊,对于这个Java而言,每一个Java源代码源文件里边都只能有一个public类,对吧,所以当前我们就直接写public bus哈啊,当前的类名必须要跟。
02:03
本身的文件名要一样啊,然后里边当然就是PSVMR,就public static voice内里边定的这个参数啊,那应该是一个。一个一个string数组,然后我们把它这个参数定义成X,这是当前main方法的传入的参数,里边呢,我们直接要打印这个hello word啊,或者当前我们打打印这个hello Java,那么就需要去调用system out print line,一边我们写一个hello啊。就是把代码里边完整的一个书写过程啊,这个本身比较简单,大家应该都是非常熟悉的了,我们先把它保存一下,然后接下来我们如果想要去运行它的话,那首先应该要先做一个编译对吧?啊,那我们首先进入到当前的这个桌面desktop,下边来我们先看到这边已经有了应的hello Java填Java这个文件,那么我们要编译的话是应该先Java c,然后。
03:19
O,一个编译,接下来大家会看到是不是会多生成一个点bus文件啊啊,这就是我们所说的编译生成的自解码文件,那要执行运行的时候是直接Java hello Java运行可以输出hello Java了,就是大家比较熟悉的这个过程啊,那么对于scla而言其实是非常类似的,接下来我们就在桌面上。精建一个。Skyla的原文件,那么这个我们叫做hello scla,同样它也有后缀名,Java的原文件后缀名是Java,那么skyla的原文件后缀名就是GALA。
04:07
我们同样进去直接做一个编辑,大家会发现就是scla的语法显然是不一样的啊,所以之前我们在Java里边上来之后,直接是public class定义一个类,诶那么在这个SC里边它又怎么样去定义呢?它不是直接定义类了,它是定义一个object啊,大家知道object是项的意思对吧?哎,所以当前的scla代码里面,如果我们定义以object关键字去定义一个对象的话,那这相当于是什么呢?啊,这相当于就是一个分利对象,这个概念后面我们会给大家详细再做讲解啊,接在我们就叫做hello scale。然后里边的法当然就是要定义一个main方法了啊,之前在Java里边是public static void的make,前面的关键字非常的多啊,呃,这个限限定符非常多。那么在。
05:04
Scla里边呢,不需要那么多东西了,它直接上来之后就是一个EFDEF,大家会发现这其实就相当于是一个def DeFine对吧?声明它主要就是用来声明函数或者是声明方法。做这样的一个操作,这是一个关键字,然后一个法名may,接下来里边需要有一个那个参数啊,那当前这个参数之前,我们这个参数是一个。String类型的数组前面是类型,后边是参数名称,而skyla里边它怎么写这个参数呢?它是先写参数名称X,他会发现就是就表这个scla里边,它表示我们最关心的是什么呢?我只要最关心的关心的是当前你这个参数是什么对吧?那关于它到底这个类型是什么的话,其实只要能自动推断出来,其实我是不是那么的关心的,所以我认为类型可以放到后边。
06:06
所以接下来类型怎么去写呢?冒号分割,冒号后边是当前这个参数的类型,而当前之前在这个Java里边是一个string类型的数组,String后面加中括号在skyla里边,呃,当前我们如果要是string类型的数组的话,它写的是A。是一个集合类型,然后里边括号里边加一个string,所以在这个表达里边,这其实不是注组的那个表达了,大家看到当前在skyla里边所谓的数组啊A瑞这已经是一个集合类型了,这是单独的一一种类型,而后边的中括号里面的string是什么呢?这是它的泛型。啊,这就是我们说的数组,它是个数组,那是什么类型的数组呢?里边的元素又是什么类型呢?String类型的数组,这就是当前的这样一个定义。好啊,那对应的大家可能会想到,那之前我们这个是public static void may,你前面这个public static去掉的话,这个还可以理解啊,那这个void你都去掉了,VO是表示什么呢?表示当前这个方法没有返回值啊,那你现在这个方法它有没有返回值,到底靠什么来去定义呢?诶这里边同样是跟在后边。
07:23
后边用冒号来表示类型函数的返回值也是用这样方式表示的,那当前的返回值没有是空,那空是什么呢?SC里面叫做unit。Unit,它就是表示这个空返回值的类型,那后边函数体前面是要加一个等号,是表示接下来就是函数体了,一样划括号,括起来边就不需要再去system out.print line了,直接print line到里面,我们可以直接hello scla他们就完成了,那当然呃在Java代码里边,我们每一行都不能忘记要去打上分号,在skyla代码里边省去这个了啊,因为很多同学一开始学Java的时候肯定有这个困惑啊,就经常一不小心就把最后的冒分分号就给呃就给忽略掉了,然后找这个语法错误,怎么找都找不到,诶最后发现少了一个分号啊,所以当前这个为了避免这样的错误,盖拉把这些不友好的定义啊这样的设置全部删掉。
08:30
这就是一个最简单的SKY拉代码,好,那接下来我们在还是在命令行里边试图去把它做一个运行啊,接下来我们首先还是要做一个编译,我们我们先看一下现在啊多多了一个这个hello scla.scla文件,那编译它的时候要怎么样去编译呢?同样,Java当时编译的时候用的编译工具是Java c,那scla在做编译的时候,它的编译器编译工具是LAC。
09:01
Galaxy啊,那跟Java的那个定义一样,同样我们把对应的GALA文件放在这。做一个编译,大家会发现这个编译的过程显然就会慢一些啊,那我们会发现它编译完了之后。到什么了呢?大家会发现多了两个class文件,一个叫做hello scla.class另外一个叫做hello scla dollar.class诶它跟之前那个Java直接编译生成的就不一样了啊,那这里边这这两个分别又代表什么含义呢?哎,我们先不不管那么多,接下来我们就看怎么样去运行就可以了,因为这个主要是涉及到GVM怎么样去解释执行,对吧?哎,我们关心更关心的是应用怎么关心它的这个处理逻辑。那接下来我们就。考虑运行的时候当然就是scla,那scla到底是运行这个hello scla还是hello scla Dollar呢?哎,这个当然就是hello scla啊,所以本身这个过程跟之前的Java是一模一样的,看到这里直接打印显示出了哈scla,这就是scla代码做这个编译运行的一个完整的过程。
我来说两句