91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現Drag語言設計

發布時間:2022-01-10 11:36:01 來源:億速云 閱讀:113 作者:柒染 欄目:開發技術

這篇文章將為大家詳細講解有關如何實現Drag語言設計 ,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

有虛擬機,跨平臺

drag虛擬機,類似python虛擬機、java虛擬機。

既是靜態語言,又是動態語言。

當類實現dynamic接口時,那么這個類支持動態添加屬性和添加方法的操作。否則,這個類會在編譯時檢查操作是否合法。

一切皆對象,一切對象皆源于類。

類似去掉java的原生類型。

虛擬機內置類型

Object
DynamicBooleanByteIntegerLongFloatDoubleString
Map
List

區分Float和Double采用數字后面使用_d或_f 區分Integer和Long采用數字后面使用_i或_l

既可以定義引用類型,也可以不定義引用類型

Integer a=10;也可以a=10; 不定義引用類型時,默認是Object類型。

既可以使用{}也可以使用縮進或者兩者混合,但強制代碼縮進。

public class A{    void printString(){
        print("str");
    }
}public class A    void printString()
        print("str");

if和for、swith和while

沒有swith,沒有while

if

//普通版if(){}else if(){}else{}//簡寫版if(){}ef(){}el{}

for

for(Boolean)//類似whilefor(Var;Boolean;Increment)//正常的forfor(Var in Iterator)//類似python

支持goto

goto只能在方法內使用,且只能往后goto到一個標記處。 類似java的break 標簽,但不限于在循環內使用。

[String] ss=["str1","str2"];for(s in ss)    if(s=="str2")
    goto A
print("run...");//這句代碼會被跳過:A//跳到這里

支持多行字符串代碼編寫方式

String s="ss
sssss
";

注釋

同java,但單行支持#

命名規則

同java,但不能使用$

父類定義的非私有屬性子類不能定義重名的屬性。

進制

默認10進制 2進制:數字開頭使用28進制:數字開頭使用816進制:數字開頭使用16_ 以此類推。

支持返回多個返回值

public static String,Integer getInfo()    return "zs",10;public static main(List s)    String name,Integer age=getInfo();

數組

類似java的list

數組的定義(泛型寫法)List<String> array=new List();//如果在構造方法new List(Integer);傳入參數則可以固定數組長度List<String> array=new List<String>();List<String> array=["str1","str2"];
[String] array=new List();
[String] array=new List<String>();
[String] array=["str1","str2"];
數組的定義(非泛型寫法,效果等于[Object])List array=new List();List array=new List<String>();List array=["str1","str2"];
[] array=new List();
[] array=new List<String>();
[] array=["str1","str2"];

使用:

[String] array=["str1","str2"];
String v=array[0];
String v=map.get(0);

字典

字典的定義(泛型寫法)Map<String:Integer> map=new Map();//如果在構造方法new Map(Integer);傳入參數則可以固定字典長度Map<String:Integer> map=new Map<String:Integer>();Map<String:Integer> map={"key1":10,"key2":20}
{String:Integer} map=new Map();
{String:Integer} map=new Map<String:Integer>();
{String:Integer} map={"key1":10,"key2":20}
字典的定義(非泛型寫法,效果等于{Object:Object})Map map=new Map();Map map=new Map<String:Integer>();Map map={"key1":10,"key2":20}
{} map=new Map();
{} map=new Map<String:Integer>();
{} map={"key1":10,"key2":20}

支持一個key對應多個value

{String:Integer:Integer} map={"key1":10:11,"key2":20:21}

使用:

{String:Integer} map={"key1":10,"key2":20}Integer v=map["key1"];Integer v=map.get("key1");

{String:Integer:Integer} map={"key1":10:11,"key2":20:21}Integer v1,Integer v2=map["key1"];Integer v1,Integer v2=map.get("key1");

普通類

默認一個普通的類就是靜態類(相對于動態類來說)。 定義靜態類型類:

class A{
}

使用靜態類型對象:

A a=new A();
a.name="tzc"//編譯錯誤A沒有a屬性a=new A();
a.name="tzc"//編譯錯誤Object沒有a屬性

接口

使用interface關鍵字定義。

interface A{
}

或者:

interface class A{
}

接口是特殊的類。 方法都是實例的公有的,沒有屬性,必須繼承才能new。

常量類

使用constant關鍵字定義。

constant A{
}

或者:

constant class A{
}

常量類是特殊的類。 屬性、方法都是靜態的,不能被繼承。

終態類

使用final關鍵字定義。

final A{
}

或者:

final class A{
}

終態類是特殊的類。 不能被繼承。

final關鍵字基本同java,但可以有以下用法:

{String:Integer} map=final {"key1":10,"key2":20}//map里的值不能修改,也不能添加和刪除元素[String] array=final ["str1","str2"]//array里的值不能修改,也不能添加和刪除元素Student stu=new final Student("zhangsan",20);//stu里的屬性不能修改,也不能添加和刪除屬性

動態類

使用dynamic關鍵字定義。

dynamic A{//這樣定義表示該類實現Dynamic接口}

或者:

dynamic class A{//這樣定義表示該類實現Dynamic接口}

或者實現Dynamic接口:

class A implement Dynamic{
}

動態類是特殊的類。 能避免編譯類型檢查。

使用動態類型對象:

A a=new A();
a.name="tzc"//編譯并運行正確Dynamic a=new A();
a.name="tzc"//編譯并運行正確a=new A();
a.name="tzc"//編譯錯誤Object沒有a屬性

new時使用dynamic:

class A{
}
a=new dynamic A();//如果A沒有實現Dynamic那么a是一個實現A并且實現Dynamic的子類的對象,相當于創建了一個匿名類。a.name="tzc"//編譯并運行正確a=dynamic 10;//a是一個繼承Integer并且實現Dynamic的子類的對象a=dynamic String;//a是一個繼承String并且實現Dynamic的子類的對象

可代替javascript在前端瀏覽器使用,需要瀏覽器支持,而開發者只需要導入相應的庫就行了。

API,核心的API只有內置類型,要想開發還得添加不同的庫。

基礎版的API類似JavaSE 高級版的API類似JavaEE

關于如何實現Drag語言設計 就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

松滋市| 宣武区| 长泰县| 河曲县| 仪征市| 汉寿县| 香格里拉县| 溧阳市| 德兴市| 唐海县| 莎车县| 阿克苏市| 西青区| 库车县| 德格县| 寿宁县| 瑞金市| 商南县| 个旧市| 体育| 达州市| 抚远县| 吴堡县| 寿阳县| 资中县| 安西县| 锡林郭勒盟| 沙雅县| 尼玛县| 将乐县| 宜宾县| 阿勒泰市| 东丰县| 北安市| 饶河县| 丰县| 徐水县| 云龙县| 兴安县| 普宁市| 偃师市|